I'm losing my mind here. I finally went full standard to see if the changes
in tomcat 7 would allow me to avoid custom class loaders and contexts, but
ran into a catch-22 issue.

 

I was getting:

 

java.lang.ClassCastException:
com.sun.xml.ws.transport.http.servlet.WSServletContainerInitializer cannot
be cast to javax.servlet.ServletContainerInitializer

                at
org.apache.catalina.startup.ContextConfig.getServletContainerInitializer(Con
textConfig.java:1654)

                at
org.apache.catalina.startup.ContextConfig.processServletContainerInitializer
s(ContextConfig.java:1562)

                at
org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1270)

                at
org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:
878)

                at
org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:
376)

                at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSuppor
t.java:119)

                at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java
:90)

                at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:
5322)

 

So I tracked down where the WSServletContainerInitializer was coming from
and removed the jar file. Now I get:

 

SEVERE: Error configuring application listener of class
org.apache.catalina.deploy.ApplicationListener@1b104d7

java.lang.ClassNotFoundException:
com.sun.xml.ws.transport.http.servlet.WSServletContextListener

                at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
a:1714)

                at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
a:1559)

                at
org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceMan
ager.java:527)

                at
org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(Def
aultInstanceManager.java:509)

                at
org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceM
anager.java:137)

                at
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:
4854)

                at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:
5434)

                at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

                at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:9
01)

                at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)

                at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)

                at
org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1113)

                at
org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1
671)

                at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)

                at
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

                at java.util.concurrent.FutureTask.run(FutureTask.java:138)

                at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.ja
va:886)

                at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:9
08)

                at java.lang.Thread.run(Thread.java:662)

 

and what's in the context is:

 

<?xml version="1.0" encoding="UTF-8"?>

      <Context path="/idwm" docBase="${catalina.home}/webapps/idwm" >

            <Resources
className="org.apache.naming.resources.VirtualDirContext"

                  extraResourcePaths="/idwm/*/=/usr/us/idwm/plugins/*/"/>

 

            <Loader
className="org.apache.catalina.loader.VirtualWebappLoader"

                  virtualClasspath="/usr/us/idwm/plugins/*/WEB-INF/classes;

                  /usr/us/idwm/plugins/*/WEB-INF/lib/*.jar;

                  /usr/us/idwm/plugins/*/;"

            />

      </Context>

 

 

So now what? I'm using the classes provided by apache and I'm damned if I do
and damned if I don't. Is there even a solution to this?

Reply via email to