0 Replies Latest reply on Apr 4, 2006 8:54 PM by tincho

    webapp throws NoClassDefFoundError, but works fine under Ori

    tincho

      Hi!

      I have a webapp (for which I don't have source code), that I'm trying to deploy under jboss. I already tested the same .ear file under orion and I don't have this problem, so it doesn't seem to be a problem with the application.

      This is the error:

      java.lang.NoClassDefFoundError: comdocII/control/web/ModelManager
       comdocII.model.web.UserWebImpl.<init>(UserWebImpl.java:44)
       comdocII.control.web.ModelManager.getUserWebImpl(ModelManager.java:137)
       comdocII.control.web.ModelManager.init(ModelManager.java:56)
       comdocII.control.web.MainServlet.getModelManager(MainServlet.java:287)
       comdocII.control.web.MainServlet.doGet(MainServlet.java:139)
       javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
       javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
       org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
      


      It's remarkable that a method of the same class is the parent of the calling method, as you can see in the stack trace.
      Also, it should be noted that the same class (exact binaries) appear twice in the application. Inside a EJB .jar, and inside a .war.

      I heard about some problems about the Jboss' classloader. Maybe someone can give me a hint..

      Also, here is the class structure:
      $ javap comdocII.control.web.ModelManager
      Compiled from "ModelManager.java"
      public class comdocII.control.web.ModelManager extends comdocII.control.web.ModelUpdateNotifier implements java.io.Serializable,javax.servlet.http.HttpSessionBindingListener{
       public comdocII.control.web.ModelManager();
       public void init(javax.servlet.http.HttpSession);
       public void valueBound(javax.servlet.http.HttpSessionBindingEvent);
       public void valueUnbound(javax.servlet.http.HttpSessionBindingEvent);
       public comdocII.control.web.ControllerWebImpl getControllerWebImpl();
       public comdocII.model.web.UserWebImpl getUserWebImpl();
       public comdocII.model.web.SearchWebImpl getSearchWebImpl(java.lang.String);
       public comdocII.model.web.ListadoWebImpl getListadoWebImpl(java.lang.String);
       public comdocII.model.web.ElementWebImpl getElementWebImpl();
       public comdocII.model.web.ElementTreeWebImpl getElementTreeWebImpl();
       public comdocII.model.web.RemitoWebImpl getRemitoWebImpl();
       public comdocII.model.web.TesauroWebImpl getTesauroWebImpl();
       public comdocII.model.web.ListaDeEtapasWebImpl getListaDeEtapasWebImpl();
       public comdocII.model.web.RequestWebImpl getRequestWebImpl(javax.servlet.http.HttpServletRequest);
       public comdocII.model.web.RequestWebImpl getRequestWebImpl();
       public comdocII.model.web.ElementsTypesWebImpl getElementsTypesWebImpl();
       public comdocII.model.web.OrganismosWebImpl getOrganismosWebImpl();
       public comdocII.model.web.URLsExternasWebImpl getURLsExternasWebImpl();
       public void removeRequestWebImpl();
       public comdocII.model.web.XmlListener getModel(java.lang.String);
      }