Hi All,

I'm trying to launch Embedded Tomcat from Java Web Start (JNLP), but without 
any luck so far.  I've searched high and low and found several folks who have 
tried this approach but no one has seemed to succeed.  Just to clarify, I'm not 
trying to run Java Web Start from Embedded Tomcat, but actually the reverse: 
start Embedded Tomcat on the client's machine, via Java Web Start.  

Tomcat starts but I get the following exception:

            ----------> Parent Classloader:
                [EMAIL PROTECTED]
                 org.apache.jasper.servlet.JspServlet
                java.lang.ClassNotFoundException: 
org.apache.jasper.servlet.JspServlet
    at 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1359)
    at 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1205)
    at org.apache.catalina.core.StandardWrapper$1.run(StandardWrapper.java:1051)
    at java.security.AccessController.doPrivileged(Native Method)
    at 
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1047)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
    at 
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.startup.Embedded.start(Embedded.java:822)

Apparently a classloader issue with JNLP, but I don't know how to set the 
classloader on Tomcat.  

I also tried launching Embedded Tomcat via a URLClassLoader.  With the 
URLClassLoader I get: java.security.AccessControlException: access denied 
(java.util.PropertyPermission catalina.home write).  It seems that the 
URLClassLoader is not running with the same privileges as the JNLP classloader.

I'm using the following code to start tomcat.

        System.setProperty("catalina.home", getPath());
            
        embedded = new Embedded();

        Engine engine = embedded.createEngine();
        engine.setDefaultHost("localhost");

        host = embedded.createHost("localhost", getPath() + "/webapps");
        engine.addChild(host);

        Context context = embedded.createContext("", getPath() + 
"/webapps/ROOT");

        host.addChild(context);

        embedded.addEngine(engine);

        Connector connector = embedded.createConnector((java.net.InetAddress) 
null, 11080, false);
        embedded.addConnector(connector);
        embedded.start();

Any suggestions will be appreciated.

Andrew

Reply via email to