如何修复 JBoss 5.2 GA 中的 jasper 错误

How to fix the jasper error in JBoss 5.2 GA

我在 WEB-INF 中有 struts-bean.tld 并在 web.xml 中进行了相同的配置,因此不存在路径问题。 J2EE 应用程序 (EAR) 的部署是成功的,但是当我尝试访问一些使用 struts 的 JSP 时,我得到以下内容

            <html><head><title>JBoss Web/2.1.13.GA-patch-01 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 500 - </h1><HR size="1" noshade="noshade"><p><b>type</b> Exception report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>The server encountered an internal error () that prevented it from fulfilling this request.</u></p><p><b>exception</b> <pre>org.apache.jasper.JasperException: Unable to initialize TldLocationsCache: null
                org.jboss.web.tomcat.service.jasper.TagLibCache.init(TagLibCache.java:106)
                org.jboss.web.tomcat.service.jasper.TagLibCache.getLocation(TagLibCache.java:83)
                org.apache.jasper.JspCompilationContext.getTldLocation(JspCompilationContext.java:549)
                org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:382)
                org.apache.jasper.compiler.Parser.parseDirective(Parser.java:445)
                org.apache.jasper.compiler.Parser.parseElements(Parser.java:1392)
                org.apache.jasper.compiler.Parser.parse(Parser.java:130)
                org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255)
                org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
                org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:171)
                org.apache.jasper.compiler.Compiler.compile(Compiler.java:333)
                org.apache.jasper.compiler.Compiler.compile(Compiler.java:313)
                org.apache.jasper.compiler.Compiler.compile(Compiler.java:300)
                org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
                org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:312)
                org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
                org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
                javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
                org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
            </pre></p><p><b>root cause</b> <pre>java.io.IOException
                org.jboss.net.protocol.file.FileURLConnection.&lt;init&gt;(FileURLConnection.java:102)
                org.jboss.net.protocol.file.Handler.openConnection(Handler.java:40)
                java.net.URL.openConnection(URL.java:945)
                org.jboss.web.tomcat.service.jasper.TagLibCache.processTldsInFileSystem(TagLibCache.java:266)
                org.jboss.web.tomcat.service.jasper.TagLibCache.processTldsInFileSystem(TagLibCache.java:261)
                org.jboss.web.tomcat.service.jasper.TagLibCache.init(TagLibCache.java:101)
                org.jboss.web.tomcat.service.jasper.TagLibCache.getLocation(TagLibCache.java:83)
                org.apache.jasper.JspCompilationContext.getTldLocation(JspCompilationContext.java:549)
                org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:382)
                org.apache.jasper.compiler.Parser.parseDirective(Parser.java:445)
                org.apache.jasper.compiler.Parser.parseElements(Parser.java:1392)
                org.apache.jasper.compiler.Parser.parse(Parser.java:130)
                org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255)
                org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
                org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:171)
                org.apache.jasper.compiler.Compiler.compile(Compiler.java:333)
                org.apache.jasper.compiler.Compiler.compile(Compiler.java:313)
                org.apache.jasper.compiler.Compiler.compile(Compiler.java:300)
                org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
                org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:312)
                org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
                org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
                javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
                org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
            </pre></p><p><b>root cause</b> <pre>java.net.URISyntaxException: Illegal character in path at index 15: file:/opt/Jboss 5.2/jboss-eap-5.2/jboss-as/server/default/tmp/5c4o16k-kxhvvq-j20ae6yb-1-j20aem8e-ax/manager.war/WEB-INF/lib/activation.jar
                java.net.URI$Parser.fail(URI.java:2810)
                java.net.URI$Parser.checkChars(URI.java:2983)
                java.net.URI$Parser.parseHierarchical(URI.java:3067)
                java.net.URI$Parser.parse(URI.java:3015)
                java.net.URI.&lt;init&gt;(URI.java:577)
                java.net.URL.toURI(URL.java:918)
                org.jboss.net.protocol.file.FileURLConnection.&lt;init&gt;(FileURLConnection.java:85)
                org.jboss.net.protocol.file.Handler.openConnection(Handler.java:40)
                java.net.URL.openConnection(URL.java:945)
                org.jboss.web.tomcat.service.jasper.TagLibCache.processTldsInFileSystem(TagLibCache.java:266)
                org.jboss.web.tomcat.service.jasper.TagLibCache.processTldsInFileSystem(TagLibCache.java:261)
                org.jboss.web.tomcat.service.jasper.TagLibCache.init(TagLibCache.java:101)
                org.jboss.web.tomcat.service.jasper.TagLibCache.getLocation(TagLibCache.java:83)
                org.apache.jasper.JspCompilationContext.getTldLocation(JspCompilationContext.java:549)
                org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:382)
                org.apache.jasper.compiler.Parser.parseDirective(Parser.java:445)
                org.apache.jasper.compiler.Parser.parseElements(Parser.java:1392)
                org.apache.jasper.compiler.Parser.parse(Parser.java:130)
                org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255)
                org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
                org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:171)
                org.apache.jasper.compiler.Compiler.compile(Compiler.java:333)
                org.apache.jasper.compiler.Compiler.compile(Compiler.java:313)
                org.apache.jasper.compiler.Compiler.compile(Compiler.java:300)
                org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
                org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:312)
                org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322)
                org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249)
                javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
                org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
            </pre></p><p><b>note</b> <u>The full stack trace of the root cause is available in the JBoss Web/2.1.13.GA-patch-01 logs.</u></p><HR size="1" noshade="noshade"><h3>JBoss Web/2.1.13.GA-patch-01</h3></body></html>

Illegal character in path at index 15: file:/opt/Jboss 5.2/jboss-eap-5.2/jboss-as/server/default/tmp/5c4o16k-kxhvvq-j20ae6yb-1-j20aem8e-ax/manager.war/WEB-INF/lib/activation.jar

字符 15(从零开始时)是 "Jboss 5.2" 目录名称中的 space 字符。将目录重命名为 "Jboss5.2" 或名称中没有 space 字符的名称。