Hi all,

I'm trying to fix a problem in my code with a missing library, but having a
lot of problem understanding exactly which library is missing.  The exception
that is getting thrown is incorrect.  The class is being loaded by a servlet
running under Tomcat, so I suppose that Tomcat is using the UCL from 3.0.  So
that's why I'm posting it here.

BASELINE:

* Win2KSP2
* Jboss 3.0-Tomcat4.0.3 binary release
* Struts CVS from about a week ago
* Xdoclet CVS from about four days ago (but i'm not sure this matters)

The problem I am looking at is a somewhat familiar one, the exception
returned by the classloader is very vague with regard to the missing library.
I'm just trying to chase down the missing library.  

The servlet is doing a classLoader.loadClass(fooClass).  The classloader is a
org.apache.catalina.loader.WebappClassLoader, fooClass is on the classpath.  

REGRESSION:

1) To start, fooClass is loadable and loads properly with
classLoader.loadClass(fooClass).  
2) I add calls to fooClass.
3) The transitive closure on fooClass is no longer complete.
4) I try to figure out what I am missing.

The trace from the exception thrown from classLoader.loadClass(fooClass) is
at the end.  It would imply that org.apache.struts.action.Action was missing,
but it's not.  'fooClass' is a subclass of Action, fooClass is the class that
I added more code to, and fooClass is still in the classpath (remember, it
worked before I added the new code).  I made sure that the classes that are
imported directly by fooClass are in the webapp classpath.  So the
implication is that something in the deeper transitive closure is missing.  

The new code I added, by the way, were EJB client calls.  And yes, I added
the entire contents of the jboss/client directory to the WEB-INF/lib of the
WAR.

Any ideas on how I could get something more informative than that the
superclass of fooClass can't load?  I'm trying to find the exact class that
is missing on the classpath.  Ack!

This keeps coming up every time I make a change and forget a library and it's
really hard to debug.  I don't presume I know where the problem is, so if
it's outside of JBoss, if I can get some clues how to figure that out, i'd be
eternally grateful.  If it's in JBoss, learning how to figure it out there
would be super awesome as well!

thanks!

Brian

23:18:08,673 ERROR [RequestProcessor] No action instance for path
/editRegistration could be created
java.lang.NoClassDefFoundError: org/apache/struts/action/Action
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:493)
        at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at
org.jboss.mx.loading.UnifiedClassLoader.findClass(UnifiedClassLoader.java:227
)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
        at
org.jboss.mx.loading.UnifiedClassLoader.loadClassLocally(UnifiedClassLoader.j
ava:235)
        at
org.jboss.mx.loading.UnifiedLoaderRepository.loadClassFromRepository(UnifiedL
oaderRepository.java:387)
        at
org.jboss.mx.loading.UnifiedLoaderRepository.loadClass(UnifiedLoaderRepositor
y.java:146)
        at
org.jboss.mx.loading.UnifiedClassLoader.loadClass(UnifiedClassLoader.java:285
)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:292)
        at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:553)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
        at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java
:1343)
        at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java
:1243)
        at
org.apache.struts.util.RequestUtils.applicationClass(RequestUtils.java:190)
        at
org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:216
)
        at
org.apache.struts.action.RequestProcessor.processActionCreate(RequestProcesso
r.java:314)
        at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:258)
        at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1161)
        at
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:453)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationF
ilterChain.java:247)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCha
in.java:193)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.jav
a:243)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:56
6)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.jav
a:190)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:56
6)
        at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:24
6)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:56
4)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:56
6)
        at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.j
ava:170)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:56
4)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:56
4)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:56
4)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
174)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:56
6)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1
012)
        at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107)
        at java.lang.Thread.run(Thread.java:484)

----------------------------------------------------------------------------
                   Bringing you mounds of caffeinated joy
                   >>>     http://thinkgeek.com/sf    <<<

_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to