Uploaded image for project: 'ManifoldCF'
  1. ManifoldCF
  2. CONNECTORS-1243

Several NoClassDefFoundError error if web apps are deployed to tomcat

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Cannot Reproduce
    • ManifoldCF 2.2
    • None
    • None

    Description

      Hi,

      I've just compiled the current 2.2 release using ant make-core-deps make-deps build and deployed the 3 WAR files into a tomcat server. After running org.apache.manifoldcf.crawler.InitializeAndRegister the database seemed to be populated and the web ui seemed workable.

      However, on certain occasions a java.lang.NoClassDefFoundError is thrown.

      I've looked into WEB-INF/lib and didn't find the needed classes in any of the jar files there. On the other hand copying the jars into tomcats lib, common or shared directories didn't help either.

      Regards,

      Jens

      See below for two example to reproduce this error.

      Creating a RSS repository connector

      Just give it a name, select the RSS type and continue:

      HTTP Status 500 - An exception occurred processing JSP page /execute.jsp at line 148
      
      type Exception report
      
      message An exception occurred processing JSP page /execute.jsp at line 148
      
      description The server encountered an internal error that prevented it from fulfilling this request.
      
      exception
      
      org.apache.jasper.JasperException: An exception occurred processing JSP page /execute.jsp at line 148
      
      145:             }
      146:           }
      147: 
      148:           String error = RepositoryConnectorFactory.processConfigurationPost(threadContext,connection.getClassName(),variableContext,pageContext.getRequest().getLocale(),connection.getConfigParams());
      149: 
      150:           if (error != null)
      151:           {
      
      
      Stacktrace:
      	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
      	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
      	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
      	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      root cause
      
      javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/manifoldcf/connectorcommon/fuzzyml/XMLParsingContext
      	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:916)
      	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:845)
      	org.apache.jsp.execute_jsp._jspService(execute_jsp.java:2550)
      	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
      	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
      	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      root cause
      
      java.lang.NoClassDefFoundError: org/apache/manifoldcf/connectorcommon/fuzzyml/XMLParsingContext
      	java.lang.Class.forName0(Native Method)
      	java.lang.Class.forName(Class.java:348)
      	org.apache.manifoldcf.core.system.ManifoldCFResourceLoader.findClass(ManifoldCFResourceLoader.java:149)
      	org.apache.manifoldcf.core.system.ManifoldCF.findClass(ManifoldCF.java:1496)
      	org.apache.manifoldcf.core.interfaces.ConnectorFactory.getThisConnectorRaw(ConnectorFactory.java:144)
      	org.apache.manifoldcf.core.interfaces.ConnectorFactory.getThisConnector(ConnectorFactory.java:134)
      	org.apache.manifoldcf.core.interfaces.ConnectorFactory.processThisConfigurationPost(ConnectorFactory.java:92)
      	org.apache.manifoldcf.crawler.interfaces.RepositoryConnectorFactory.processConfigurationPost(RepositoryConnectorFactory.java:163)
      	org.apache.jsp.execute_jsp._jspService(execute_jsp.java:308)
      	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
      	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
      	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      root cause
      
      java.lang.ClassNotFoundException: org.apache.manifoldcf.connectorcommon.fuzzyml.XMLParsingContext
      	java.net.URLClassLoader.findClass(URLClassLoader.java:381)
      	java.lang.ClassLoader.loadClass(ClassLoader.java:424)
      	java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:814)
      	java.lang.ClassLoader.loadClass(ClassLoader.java:357)
      	java.lang.Class.forName0(Native Method)
      	java.lang.Class.forName(Class.java:348)
      	org.apache.manifoldcf.core.system.ManifoldCFResourceLoader.findClass(ManifoldCFResourceLoader.java:149)
      	org.apache.manifoldcf.core.system.ManifoldCF.findClass(ManifoldCF.java:1496)
      	org.apache.manifoldcf.core.interfaces.ConnectorFactory.getThisConnectorRaw(ConnectorFactory.java:144)
      	org.apache.manifoldcf.core.interfaces.ConnectorFactory.getThisConnector(ConnectorFactory.java:134)
      	org.apache.manifoldcf.core.interfaces.ConnectorFactory.processThisConfigurationPost(ConnectorFactory.java:92)
      	org.apache.manifoldcf.crawler.interfaces.RepositoryConnectorFactory.processConfigurationPost(RepositoryConnectorFactory.java:163)
      	org.apache.jsp.execute_jsp._jspService(execute_jsp.java:308)
      	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
      	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
      	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      note The full stack trace of the root cause is available in the Apache Tomcat/7.0.52 (Ubuntu) logs.
      

      Create a Confluence repository connector

      Give it a name, select confluence, configure the connection and click save:

      HTTP Status 500 - An exception occurred processing JSP page /execute.jsp at line 179
      
      type Exception report
      
      message An exception occurred processing JSP page /execute.jsp at line 179
      
      description The server encountered an internal error that prevented it from fulfilling this request.
      
      exception
      
      org.apache.jasper.JasperException: An exception occurred processing JSP page /execute.jsp at line 179
      
      176:             connManager.save(connection);
      177:             variableContext.setParameter("connname",connectionName);
      178: %>
      179:             <jsp:forward page="viewconnection.jsp"/>
      180: <%
      181:           }
      182:         }
      
      
      Stacktrace:
      	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
      	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
      	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
      	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      root cause
      
      org.apache.jasper.JasperException: An exception occurred processing JSP page /viewconnection.jsp at line 70
      
      67:     String connectionStatus;
      68:     try
      69:     {
      70:       IRepositoryConnector c = repositoryConnectorPool.grab(connection);
      71:       if (c == null)
      72:         connectionStatus = Messages.getString(pageContext.getRequest().getLocale(),"viewconnection.Connectorisnotinstalled");
      73:       else
      
      
      Stacktrace:
      	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
      	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
      	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
      	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      	org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:750)
      	org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:720)
      	org.apache.jsp.execute_jsp._jspService(execute_jsp.java:363)
      	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
      	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
      	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      root cause
      
      javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/manifoldcf/connectorcommon/common/InterruptibleSocketFactory
      	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:916)
      	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:845)
      	org.apache.jsp.viewconnection_jsp._jspService(viewconnection_jsp.java:539)
      	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
      	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
      	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      	org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:750)
      	org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:720)
      	org.apache.jsp.execute_jsp._jspService(execute_jsp.java:363)
      	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
      	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
      	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      root cause
      
      java.lang.NoClassDefFoundError: org/apache/manifoldcf/connectorcommon/common/InterruptibleSocketFactory
      	org.apache.manifoldcf.crawler.connectors.confluence.ConfluenceRepositoryConnector.initConfluenceClient(ConfluenceRepositoryConnector.java:295)
      	org.apache.manifoldcf.crawler.connectors.confluence.ConfluenceRepositoryConnector.connect(ConfluenceRepositoryConnector.java:191)
      	org.apache.manifoldcf.core.connectorpool.ConnectorPool$Pool.getConnector(ConnectorPool.java:479)
      	org.apache.manifoldcf.core.connectorpool.ConnectorPool.grab(ConnectorPool.java:255)
      	org.apache.manifoldcf.crawler.repositoryconnectorpool.RepositoryConnectorPool.grab(RepositoryConnectorPool.java:86)
      	org.apache.jsp.viewconnection_jsp._jspService(viewconnection_jsp.java:237)
      	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
      	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
      	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      	org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:750)
      	org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:720)
      	org.apache.jsp.execute_jsp._jspService(execute_jsp.java:363)
      	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
      	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
      	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      root cause
      
      java.lang.ClassNotFoundException: org.apache.manifoldcf.connectorcommon.common.InterruptibleSocketFactory
      	java.net.URLClassLoader.findClass(URLClassLoader.java:381)
      	java.lang.ClassLoader.loadClass(ClassLoader.java:424)
      	java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:814)
      	java.lang.ClassLoader.loadClass(ClassLoader.java:357)
      	org.apache.manifoldcf.crawler.connectors.confluence.ConfluenceRepositoryConnector.initConfluenceClient(ConfluenceRepositoryConnector.java:295)
      	org.apache.manifoldcf.crawler.connectors.confluence.ConfluenceRepositoryConnector.connect(ConfluenceRepositoryConnector.java:191)
      	org.apache.manifoldcf.core.connectorpool.ConnectorPool$Pool.getConnector(ConnectorPool.java:479)
      	org.apache.manifoldcf.core.connectorpool.ConnectorPool.grab(ConnectorPool.java:255)
      	org.apache.manifoldcf.crawler.repositoryconnectorpool.RepositoryConnectorPool.grab(RepositoryConnectorPool.java:86)
      	org.apache.jsp.viewconnection_jsp._jspService(viewconnection_jsp.java:237)
      	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
      	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
      	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      	org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:750)
      	org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:720)
      	org.apache.jsp.execute_jsp._jspService(execute_jsp.java:363)
      	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
      	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
      	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
      	javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
      note The full stack trace of the root cause is available in the Apache Tomcat/7.0.52 (Ubuntu) logs.
      

      Attachments

        Activity

          People

            kwright@metacarta.com Karl Wright
            jan0sch Jens Grassel
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: