4 Replies Latest reply on Jan 24, 2003 5:26 AM by Peter Kliem

    Second++ deploy of EAR aways fails

    Darren Newbie

      JBoss 3.0.4+Tomcat4.1.X
      I am having a weird problem in which the first time I deploy my EAR, everything is fine. The second and any subsequent redeploys (even if I restart JBoss completely) cause the JSP compiler to fail with the stack trace given below. Does anyone know why this could be occurring?

      org.apache.jasper.JasperException: Unable to compile class for JSP
      at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:479)
      at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:184)
      at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289)
      at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      at com.docent.client.servlets.LoginFilter.doFilter(LoginFilter.java:112)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040)
      at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151)
      at java.lang.Thread.run(Thread.java:479)


      root cause

      java.lang.NullPointerException
      at org.apache.tools.ant.util.FileUtils.resolveFile(FileUtils.java:330)
      at org.apache.tools.ant.Project.resolveFile(Project.java:618)
      at org.apache.tools.ant.types.Path.resolveFile(Path.java:451)
      at org.apache.tools.ant.types.Path.translatePath(Path.java:353)
      at org.apache.tools.ant.types.Path$PathElement.setPath(Path.java:119)
      at org.apache.tools.ant.types.Path.setPath(Path.java:167)
      at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:262)
      at org.apache.jasper.compiler.Compiler.compile(Compiler.java:324)
      at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:474)
      at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:184)
      at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289)
      at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      at com.docent.client.servlets.LoginFilter.doFilter(LoginFilter.java:112)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
      at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1040)
      at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1151)
      at java.lang.Thread.run(Thread.java:479)

        • 1. Re: Second++ deploy of EAR aways fails
          Dan Newbie

          I am getting the same error. And this is only a simple test with one servlet, one jsp.

          • 2. Re: Second++ deploy of EAR aways fails
            Dan Newbie

            I have found a number of statements that look like this:

            13:20:48,298 WARN [MainDeployer] The manifest entry in file:/E:/development/env/appserver/jboss-3.0.4_tomcat-4.1.12/server/default/lib/castor.jar references URL file:/E:/development/env/appserver/jboss-3.0.4_tomcat-4.1.12/server/default/lib/xerces.jar, which could not be opened, entry ignored

            It looks like a number of jar files aren't being loaded. Maybe this could be causing some of the problems.

            • 3. Re: Second++ deploy of EAR aways fails
              Darren Newbie

              I was able to work around my problem by changing the format of the classpath in the JBoss startup script. My original classpath was oddly formatted because I checked jboss, java, and the JDBC driver into my source code control system and wanted any user to be able to start JBoss regardless of whether their source root was located. For this reason, my original classpath had several directories that were listed relative to the jboss/bin directory. Also, I was mixing forward and backward slashes. Here is an example:

              CLASSPATH: ;..\..\..\win32\java\1.3.1_03\sdk\lib\tools.jar;E:\source_root\tools\win32\jboss\bin\\run.jar;../../../../3rdparty/jnetdirect/JSQLConnect.jar

              I couldn't step into ant using the debugger to see exactly what was causing the exception, however, by making all slashes consistent and removing the relative directories (e.g. ..\..\..), I was able to get the exception to go away. Also, I removed the leading ';' from the classpath even though I did ensure that this was not causing the problem.

              • 4. Re: Second++ deploy of EAR aways fails
                Peter Kliem Newbie

                We experienced the same problem (sometimes JSP compilation will work, sometime it doesn't) with jboss3.0.4_tomcat4.1.12 running on win2k/jdk1.4.1. Since changing the classpath did not help we thought of concurrent classloading ... combined with another thread in the forums mentioning ant beeing used we tried copying the ant.jar from tomcat (tomcat4.1.x/common/lib/ant.jar) to the lib directory of our server configuration and:
                our problem vanished!