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
Type: Bug
Components: Web (Tomcat) service
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
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
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
JBoss-Development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-development