Hi,

I've inherited an incredibly poorly engineered web application which I am
now trying to re-engineer so that's it's at least in better condition than
which I've found it. After doing a bit of refactoring we found that when
installed on our preview (test) server we sporadically get a
JasperException; "Unable to compile class for JSP", the stacktrace is
reproduced at end of this message. I know this normally indicates some sort
of java/JSP programming error, however nothing concrete is suggested in the
trace.

I did a web search looking for some answers but only found the usual
collection of people trying to write invalid Java in their JSP or not having
a correct classpaths, nothing like this problem.

This exception is usually produced on the one JSP (but not exclusively), if
you take a specific series of actions, but not necessarily EVERY time you
take that series of actions. I've looked at it in a debugger which suggests
the exception isn't coming from anywhere near any object we've written
that's on the stack.

We took the measure of getting the offending JSP (a result page) and
emptying it of all java and JSP constructs so that it is pure HTML; it still
produces the error.

There is one path of actions that results in landing you at the offending
page, which always works. If you go via another path, it will fail about 60%
or 70% of the time.

The other thing is, that when this occurs all subsequent non-compiled JSPs
will not compile either, producing the same message. If I pre-visit those
JSPs before this exception is thrown, those JSPs continue to work afterwards
(the page itself, once it gets this error, can't be viewed again).

My current hunch, is that there is some hideous chunk of code in the
application, that once executed, then  bends the system out of shape such
that any subsequent attempt at compiling JSPs fails. I've never encountered
an error like that before, what sort of things should I be looking for here?

The other thing I should add, that if I run jboss/tomcat locally on my
dual-CPU Win2000 box with IBM JDK 1.3 and the exact same EAR file it works
perfectly.

The preview server is a "SunOS nobbys 5.8 Generic_108528-10 sun4u sparc
SUNW,UltraAX-i2" (uname -a output)  ... the java is the Sun Hotsport JRE;
java -version produces

        java version "1.3.1_03"
        Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_03-b03)
        Java HotSpot(TM) Client VM (build 1.3.1_03-b03, mixed mode)

The non-JSP .class files are compiled into an EAR file with the IBM JDK on
my machine, using ANT.

I've got one of the programmers going over the configuration files to locate
differences on the various copies of jboss, which are all
JBoss-2.4.4_Tomcat-4.0.1. One thing we've found is that the local (Win)
copies of Jboss don't have any <Connector className= [ ... ] > in
jBoss.jcml, whereas the preview server specifies this connector classname is
"org.apache.catalina.connector.http.HttpConnector" and on the production
server it's "org.apache.ajp.tomcat4.Ajp13Connector", because we use Apache
to provise SSL connectivity in production. (but this code hasn't made it to
production yet, so i've got no idea whether it works there or not). I don't
know what exactly to look for here, if indeed it is a cfg issue, as all my
prior experience was with Websphere and JRun, or Tomcat standalone.

Any help or pointers you could give me is much appreciated.

regards
scot mcphee.

___________________________________________
Scot Mcphee -                 Snr Developer
            -       (mobile) +61-412-957414
___________________________________________
TigerEx     -        http://www.tigerex.net
            -          (bus) +61-2-82593613
___________________________________________


2002-06-21 03:52:55,646 [HttpProcessor[8080][2]] ERROR
org.jboss.web.catalina.EmbeddedCatalinaServiceSX - ApplicationDispatcher[]
Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP
        at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:567)
        at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspSe
rvlet.java:177)
        at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.ja
va:189)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.
java:683)
        at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatch
er.java:431)
        at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher
.java:355)
        at tigerlite.control.MainServlet.process(MainServlet.java:123)
        at tigerlite.control.MainServlet.doPost(MainServlet.java:72)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:243)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:190)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
        at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:2
46)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
        at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170
)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:
1012)
        at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107
)
        at java.lang.Thread.run(Thread.java:479)
2002-06-21 03:52:55,683 [HttpProcessor[8080][2]] ERROR
org.jboss.web.catalina.EmbeddedCatalinaServiceSX - ----- Root Cause -----
java.lang.NullPointerException
        at java.io.Writer.write(Writer.java:124)
        at java.io.PrintWriter.newLine(PrintWriter.java:231)
        at java.io.PrintWriter.println(PrintWriter.java:382)
        at java.io.PrintWriter.println(PrintWriter.java:493)
        at org.apache.jasper.compiler.ServletWriter.println(ServletWriter.java:182)
        at
org.apache.jasper.compiler.JspParseEventListener.generateHeader(JspParseEven
tListener.java:252)
        at
org.apache.jasper.compiler.JspParseEventListener.endPageProcessing(JspParseE
ventListener.java:195)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:215)
        at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:552)
        at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspSe
rvlet.java:177)
        at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.ja
va:189)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.
java:683)
        at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatch
er.java:431)
        at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher
.java:355)
        at tigerlite.control.MainServlet.process(MainServlet.java:123)
        at tigerlite.control.MainServlet.doPost(MainServlet.java:72)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:243)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:190)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
        at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:2
46)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
        at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170
)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:
1012)
        at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107
)
        at java.lang.Thread.run(Thread.java:479)
org.apache.jasper.JasperException: Unable to compile class for JSP
        at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:567)
        at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspSe
rvlet.java:177)
        at
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.ja
va:189)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.
java:683)
        at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatch
er.java:431)
        at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher
.java:355)
        at tigerlite.control.MainServlet.process(MainServlet.java:123)
        at tigerlite.control.MainServlet.doPost(MainServlet.java:72)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:243)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:190)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
        at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:2
46)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
        at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170
)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
        at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
        at
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:
1012)
        at
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107
)
        at java.lang.Thread.run(Thread.java:479)




-------------------------------------------------------
Sponsored by:
ThinkGeek at http://www.ThinkGeek.com/
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to