3 Replies Latest reply on Jan 20, 2006 4:58 PM by bkyrlach

    Deploying web-apps under JBoss...

    bkyrlach

      Ocassionally when I deploy my app under JBoss I get the following exception...

      16:29:24 [org.jboss.web.localhost.Engine] StandardWrapperValve[action]: Servlet.service() for servlet action threw exception

      javax.servlet.jsp.JspException: ServletException in '/reports/ProductionHome.jsp': tried to access class org.apache.commons.collections.IteratorUtils$EmptyIterator from class org.apache.commons.collections.IteratorUtils

      at org.apache.struts.taglib.tiles.InsertTag$InsertHandler.doEndTag(InsertTag.java:921)

      at org.apache.struts.taglib.tiles.InsertTag.doEndTag(InsertTag.java:460)

      at org.apache.jsp.tiles.TabbedMain_jsp._jspx_meth_tiles_get_5(TabbedMain_jsp.java:604)

      at org.apache.jsp.tiles.TabbedMain_jsp._jspService(TabbedMain_jsp.java:240)

      at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)

      at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)

      at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)

      at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)

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

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

      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)

      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474)

      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409)

      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)

      at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)

      at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261)

      at org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(TilesRequestProcessor.java:237)

      at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:300)

      at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)

      at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1158)

      at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)

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

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

      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)

      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474)

      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409)

      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)

      at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)

      at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261)

      at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)

      at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:316)

      at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)

      at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1158)

      at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)

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

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

      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:704)

      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:474)

      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:409)

      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)

      at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)

      at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261)

      at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)

      at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:316)

      at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)

      at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1158)

      at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)

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

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

      at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)

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

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

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

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

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

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

      at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

      at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)

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

      at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

      at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:66)

      at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)

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

      at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)

      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

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

      at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

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

      at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)

      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:535)

      at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)

      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

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

      at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)

      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)

      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)

      at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)

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

      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)

      at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)

      at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)

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


      Now, from my limited understanding, this shouldn't be possible. It looks like the JBoss security manager is not allowing the class to access an inner class. Any ideas? Redeploying (after deleting all temporary files that JBoss generates) seems to fix the problem... sometimes. Maybe it's a problem with MyEclipse?

        • 1. Re: Deploying web-apps under JBoss...
          bkyrlach

          No ideas?

          • 2. Re: Deploying web-apps under JBoss...
            starksm64

            jboss does not run with a security manager by default. You have multiple class loaders picking up the commons collections stuff and there is a conflict when accessing package protected members.

            • 3. Re: Deploying web-apps under JBoss...
              bkyrlach

              Hmmm... well, we've configured jboss-app.xml to allow for class localization. Would Eclipse show if there were multiple jars on the classpath that defined the same class? It still seems kind of odd that this conflict only shows up sometimes. Here's my jboss-app.xml (well, the relevant part)

              <!-- Currently, loader repository tag causes failure on local JBoss -->
              <loader-repository>
              tim.hobsons.com:loader=TIM_CLASS_ARCHIVE
              <loader-repository-config>java2ParentDelegation=true</loader-repository-config>
              </loader-repository>