Uploaded image for project: 'Geronimo'
  1. Geronimo
  2. GERONIMO-4094

Tomcat APR connector didn't load the native library

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • 2.1.1
    • 2.1.2, 2.2
    • connector
    • Security Level: public (Regular issues)
    • None

    Description

      Tomcat has a lifecycle listener (org.apache.catalina.core.AprLifecycleListener) to load the native library for APR connector, but Geronimo didn't add this lifecycle listener to TomcatContainer.

      The steps to recreate this error:
      Create a APR connector via admin console, but fail to start the connector with the following exception:

      10:39:43,167 ERROR [GBeanInstanceState] Error while starting; GBean is now in the FAILED state: abstractName="org.apache.geronimo.configs/tomcat6/2.1.1/car?ServiceModule=org.apache.geronimo.configs/tomcat6/2.1.1/car,j2eeType=GBean,name=APRHTTPTest"
      java.lang.UnsatisfiedLinkError: org/apache/tomcat/jni/Pool.create(J)J
      	at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:579)
      	at org.apache.coyote.http11.Http11AprProtocol.init(Http11AprProtocol.java:121)
      	at org.apache.catalina.connector.Connector.initialize(Connector.java:1059)
      	at org.apache.catalina.core.StandardService.addConnector(StandardService.java:267)
      	at org.apache.catalina.startup.Embedded.addConnector(Embedded.java:327)
      	at org.apache.geronimo.tomcat.TomcatContainer.addConnector(TomcatContainer.java:390)
      	at org.apache.geronimo.tomcat.connector.ConnectorGBean.doStart(ConnectorGBean.java:95)
      	at org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance(GBeanInstance.java:998)
      	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart(GBeanInstanceState.java:268)
      	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.start(GBeanInstanceState.java:102)
      	at org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive(GBeanInstanceState.java:124)
      	at org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive(GBeanInstance.java:555)
      	at org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean(BasicKernel.java:379)
      	at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor$StartRecursiveInvoke.invoke(ProxyMethodInterceptor.java:365)
      	at org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
      	at org.apache.geronimo.tomcat.connector.Http11APRProtocol$$EnhancerByCGLIB$$6380f922.startRecursive(<generated>)
      	at org.apache.geronimo.console.webmanager.ConnectorPortlet.processAction(ConnectorPortlet.java:149)
      	at org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:218)
      	at org.apache.pluto.core.PortletServlet.doPost(PortletServlet.java:145)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
      	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:557)
      	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:481)
      	at org.apache.pluto.core.DefaultPortletInvokerService.invoke(DefaultPortletInvokerService.java:167)
      	at org.apache.pluto.core.DefaultPortletInvokerService.action(DefaultPortletInvokerService.java:85)
      	at org.apache.pluto.core.PortletContainerImpl.doAction(PortletContainerImpl.java:219)
      	at org.apache.pluto.driver.PortalDriverServlet.doGet(PortalDriverServlet.java:121)
      	at org.apache.pluto.driver.PortalDriverServlet.doPost(PortalDriverServlet.java:167)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
      	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
      	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
      	at org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:56)
      	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
      	at org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:406)
      	at org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47)
      	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
      	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
      	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
      	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
      	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
      	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
      	at java.lang.Thread.run(Thread.java:810)
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            frank2006g YunFeng Ma
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: