0 Replies Latest reply on Mar 9, 2007 7:47 PM by Dan Diodati

    cant resolve NoClassDefFoundException

    Dan Diodati Newbie

      I keep having a NoClassDefFoundException (java.lang.NoClassDefFoundError: com/successfactors/pm/ui/messages/SFMessages) when jsf components try to load one of our classes (SFMessages).

      I'm running jboss4.0.5, jdk5 and using the default classloader settings(Tomcat uses it own class loader for isolation).


      The directory structure looks like:

      serverconfig/lib - Contains jsf libs(Removed the jbossweb-tomcat55.sar/jsf-libs directory)
      serverconfig/deploy/sfv4.ear/sfv4-ejb.jar - Contains all of our ejb classes
      serverconfig/deploy/sfv4.ear/sfv4-comon.jar - Contains common classes used by ejbs and web code.
      serverconfig/deploy/sfv4.ear/xi.war/WEB-INF/classes - contains web code


      The SFMessages class lives in sfv4-common.jar currently.

      I tried putting the SFMessages into the web-inf/classes but still get the same issue.


      I also tried to move the jsf libs into the sfv4.ear and added entries to the application.xml but I still get the same issue.

      All manifests in the jars have no references to other jars.


      I turned on ucl tracing and the exception is below. According to some post on the jboss forums it indicates that the shared class is being reference by the war and ejb classloader which is not allowed. I tried making sure the only instance of SFMessages is in sfv4-common.jar and then
      tried adding sfv4-common.jar to the application.xml (as a java module), but still having the same issue.

      This is holding up development on a major project and I need it resolved quickly.

      Any Ideas?

      Thanks, Dan

      Here is the exception:

      [3420200,LoadMgr3,http-0.0.0.0-8080-2] Notifying task of thread completion, loadTask:org.jboss.mx.loading.ClassLoadingTask@1bace2b{classname: com.successfactors.pm.ui.messages.SFMessages, requestingThread: Thread[http-0.0.0.0-8080-2,5,jboss], requestingClassLoader: org.jboss.mx.loading.UnifiedClassLoader3@1814dd0{ url=file:/C:/jboss-4.0.5.GA-ejb/server/main/deploy/sfv4.ear/ ,addedOrder=43}, loadedClass: nullnull, loadOrder: 2147483647, loadException: java.lang.LinkageError: Class com/successfactors/pm/ui/messages/SFMessages violates loader constraints, threadTaskCount: 0, state: 1, #CCE: 0}loadException details:
      java.lang.LinkageError: Class com/successfactors/pm/ui/messages/SFMessages violates loader constraints

      at java.lang.ClassLoader.defineClass1(Native Method)


      at java.lang.ClassLoader.defineClass(ClassLoader.java:620)

      at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)

      at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)

      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.RepositoryClassLoader.findClassLocally(RepositoryClassLoader.java:672)



      at org.jboss.mx.loading.RepositoryClassLoader.findClass(RepositoryClassLoader.java:652)



      at java.lang.ClassLoader.loadClass(ClassLoader.java:306)



      at org.jboss.mx.loading.RepositoryClassLoader.loadClassLocally(RepositoryClassLoader.java:190)



      at org.jboss.mx.loading.ClassLoadingTask$ThreadTask.run(ClassLoadingTask.java:131)



      at org.jboss.mx.loading.LoadMgr3.nextTask(LoadMgr3.java:399)



      at org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:517)



      at org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:405)



      at java.lang.ClassLoader.loadClass(ClassLoader.java:251)



      at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)



      at java.lang.Class.getDeclaredMethods0(Native Method)



      at java.lang.Class.privateGetDeclaredMethods(Class.java:2365)



      at java.lang.Class.getDeclaredMethods(Class.java:1763)



      at java.beans.Introspector$1.run(Introspector.java:1265)



      at java.security.AccessController.doPrivileged(Native Method)



      at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1263)



      at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1129)



      at java.beans.Introspector.getBeanInfo(Introspector.java:387)



      at java.beans.Introspector.getBeanInfo(Introspector.java:159)



      at org.apache.myfaces.el.PropertyResolverImpl.getPropertyDescriptor(PropertyResolverImpl.java:454)



      at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:417)



      at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:82)



      at com.sun.facelets.el.LegacyELContext$LegacyELResolver.getValue(LegacyELContext.java:141)



      at com.sun.el.parser.AstValue.getValue(AstValue.java:117)



      at com.sun.el.parser.AstDeferredExpression.getValue(AstDeferredExpression.java:46)



      at com.sun.el.parser.AstCompositeExpression.getValue(AstCompositeExpression.java:51)



      at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:192)



      at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)



      at com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:56)



      at javax.faces.component.UIGraphic.getValue(UIGraphic.java:96)



      at javax.faces.component.UIGraphic.getUrl(UIGraphic.java:35)



      at org.apache.myfaces.shared_impl.renderkit.html.HtmlImageRendererBase.encodeEnd(HtmlImageRendererBase.java:53)



      at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536)



      at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:242)



      at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:239)



      at com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:239)



      at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:580)



      at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)



      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)



      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)



      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)



      at org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:46)



      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)



      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)



      at org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:32)



      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)



      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)



      at com.successfactors.pm.ui.security.AuthenticationFilter.doFilter(AuthenticationFilter.java:81)



      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)



      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)



      at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)



      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)



      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)



      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)



      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)



      at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)



      at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)



      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)



      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)



      at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)



      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)



      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)



      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)



      at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)



      at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)



      at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)



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