[
http://jira.jboss.com/jira/browse/JBAS-1283?page=all ]
Dimitris Andreadis updated JBAS-1283:
-------------------------------------
Fix Version/s: (was: JBossAS-4.2.0.CR1)
Tomcat Unable to Compile JSPs when Separate ClassLoader Namespace
Used for Webapp
---------------------------------------------------------------------------------
Key: JBAS-1283
URL:
http://jira.jboss.com/jira/browse/JBAS-1283
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Web (Tomcat) service
Affects Versions: JBossAS-3.2.6 Final
Environment: Stock JBoss 3.2.6 running on Linux (kernel 2.4.26), Sun JDK and JRE
version 1.4.2_04
Reporter: Jeremy Brown
Assigned To: Scott M Stark
Priority: Minor
Attachments: test.war
See my initial forum post at
"http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3861452#3861452".
The dom4j libs provided by JBoss do not work correctly with my web application, so I
attempted to configure my webapp's "jboss-web.xml"--as per the wiki page at
"http://www.jboss.org/wiki/Wiki.jsp?page=ClassLoadingConfiguration"--so that my
webapp would essentially be in a different classloader namspace and would be able to
override the server dom4j implementation with its own. Now, Tomcat bails out during JSP
compilation with a dom4j-related ClassCastException, leading me to believe there might
some problem with the sort of setup I'm trying to attempt...for example, Tomcat's
JSP compiler might be trying to link with the dom4j in my application's namespace
while its classes have been loaded next to (and probably are already using) dom4j in the
server namespace.
I'll attach a .war file exhibiting this behavior to this bug report.
Here's the specific exception for this .war file:
java.lang.ClassCastException
at
javax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderFactory.java:93)
at org.apache.jasper.xmlparser.ParserUtils.parseXMLDocument(ParserUtils.java:91)
at org.apache.jasper.compiler.JspConfig.processWebDotXml(JspConfig.java:70)
at org.apache.jasper.compiler.JspConfig.init(JspConfig.java:188)
at org.apache.jasper.compiler.JspConfig.findJspProperty(JspConfig.java:240)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:160)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:470)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
at
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
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.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.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)
Interestingly enough, I can copy my app-specific "dom4j-full.jar" over the
JBoss-provided "dom4j.jar" in "/lib", and everything works great.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira