You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Ignacio Ocampo <na...@gmail.com> on 2014/11/17 22:55:53 UTC

Fwd: java.protocol.handler.pkgs does not work with Tomcat 7

Hi all,

I'm using a third part library for NTLM authentication, one of their
requeriments is to set: System.setProperty("java.protocol.handler.pkgs",
"jespa");

But, it does not take any effect, I see Tomcat 7 source code here:

https://github.com/apache/tomcat70/blob/051a1dfd4c2943a8e8001c6be88d208cac72faff/java/org/apache/catalina/loader/WebappLoader.java#L561

        // Register a stream handler factory for the JNDI protocol
        URLStreamHandlerFactory streamHandlerFactory =
                DirContextURLStreamHandlerFactory.getInstance();
        if (first) {
            first = false;
            try {
*                URL.setURLStreamHandlerFactory(streamHandlerFactory);*
            } catch (Exception e) {
                // Log and continue anyway, this is not critical
                log.error("Error registering jndi stream handler", e);
            } catch (Throwable t) {
                ExceptionUtils.handleThrowable(t);
                // This is likely a dual registration
                log.info("Dual registration of jndi stream handler: "
                         + t.getMessage());
            }
        }

And I see *URL.setURLStreamHandlerFactory *documentation at:
https://docs.oracle.com/javase/7/docs/api/java/net/URL.html#setURLStreamHandlerFactory(java.net.URLStreamHandlerFactory)

public static void setURLStreamHandlerFactory(URLStreamHandlerFactory
<https://docs.oracle.com/javase/7/docs/api/java/net/URLStreamHandlerFactory.html>
fac)

Sets an application's URLStreamHandlerFactory. This method can be called at
most once in a given Java Virtual Machine.

The URLStreamHandlerFactory instance is used to construct a stream protocol
handler from a protocol name.
I tried set -Djava.protocol.handler.pkgs=jespa in catalina.sh and put my
jars in jdk/lib, jdk/jre/lib, tomcat/lib, tomcat/webapps/ROOT/WEB-INF/lib,
but nothing.

I hope your comments.

Regards.

-- 
Ignacio Ocampo Millán