[
https://issues.jboss.org/browse/WFLY-10411?page=com.atlassian.jira.plugin...
]
Tomas Hofman edited comment on WFLY-10411 at 5/31/18 6:15 AM:
--------------------------------------------------------------
[~swd847] since the meaning of the spec is perhaps ambiguous and at least Tomcat behaves
according to a different interpretation that Wildfly does, what do you think about adding
{{META-INF/resources}} as another root in TldParsingDeploymentProcessor?
https://github.com/wildfly/wildfly/blob/master/undertow/src/main/java/org...
I'm talking about the fact that when web-fragment.xml JAR contains taglib mapping like
this:
{code}
<taglib>
<taglib-uri>/HiTag</taglib-uri>
<taglib-location>/WEB-INF/tlds/hi.tld</taglib-location>
</taglib>
{code}
then Wildfly looks for "/WEB-INF/tlds/hi.tld" under
"<jar>/META-INF/" while Tomcat looks under
"<jar>/META-INF/resources".
was (Author: thofman):
[~swd847] since the meaning of the spec is perhaps ambiguous and at least Tomcat behaves
according to a different interpretation that Wildfly does, what do you thing about adding
{{META-INF/resources}} as another root in TldParsingDeploymentProcessor?
https://github.com/wildfly/wildfly/blob/master/undertow/src/main/java/org...
I'm talking about the fact that when web-fragment.xml JAR contains taglib mapping like
this:
{code}
<taglib>
<taglib-uri>/HiTag</taglib-uri>
<taglib-location>/WEB-INF/tlds/hi.tld</taglib-location>
</taglib>
{code}
then Wildfly looks for "/WEB-INF/tlds/hi.tld" under
"<jar>/META-INF/" while Tomcat looks under
"<jar>/META-INF/resources".
TLDs under META-INF/resources inside the web-fragment jar is not
loaded
-----------------------------------------------------------------------
Key: WFLY-10411
URL:
https://issues.jboss.org/browse/WFLY-10411
Project: WildFly
Issue Type: Bug
Components: Web (Undertow)
Affects Versions: 13.0.0.Beta1
Reporter: Masafumi Miura
Assignee: Stuart Douglas
Attachments: jsp-taglib-jar-in-war.zip
TLDs under META-INF/resources inside the web-fragment jar is not loaded.
{code:title=directory structure of the web-fragment jar}
taglib-jar
|-- META-INF
| |-- resources
| | `-- WEB-INF
| | `-- tlds
| | `-- hi.tld
| `-- web-fragment.xml
`-- simple
`-- HiTag.class
{code}
{code:title=web-fragment.xml}
<?xml version="1.0" encoding="UTF-8"?>
<web-fragment id="WebFragment_ID"
version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-fragment_3_0.xsd">
...(snip)...
<jsp-config>
<taglib>
<taglib-uri>/HiTag</taglib-uri>
<taglib-location>/WEB-INF/tlds/hi.tld</taglib-location>
</taglib>
</jsp-config>
</web-fragment>
{code}
The following ERROR is thrown at the deployment:
{code}
ERROR [org.wildfly.extension.undertow] (MSC service thread 1-8) WFLYUT0074: Could not
find TLD /WEB-INF/tlds/hi.tld
{code}
JSP returns "500 Internal Server Error" and Jastow throws the following ERROR
when accessing the JSP which has {{<%@ taglib uri="/HiTag"
prefix="say"%>}} or {{<%@ taglib uri="/WEB-INF/tlds/hi.tld"
prefix="say"%>}}:
{code}
ERROR [io.undertow.request] (default task-1) UT005023: Exception handling request to
/taglib-jar-in-war/hi.jsp: org.apache.jasper.JasperException: JBWEB004036: File
"/HiTag" not found
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:57)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:278)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:75)
at
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:171)
at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:412)
at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:475)
at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1459)
at org.apache.jasper.compiler.Parser.parse(Parser.java:143)
at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:223)
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:200)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:652)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:403)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:347)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
...(snip)...
{code}
{code}
ERROR [io.undertow.request] (default task-1) UT005023: Exception handling request to
/taglib-jar-in-war/index.jsp: org.apache.jasper.JasperException: JBWEB004036: File
"/WEB-INF/tlds/hi.tld" not found
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:57)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:278)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:75)
at
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:171)
at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:412)
at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:475)
at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1459)
at org.apache.jasper.compiler.Parser.parse(Parser.java:143)
at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:223)
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:200)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:652)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:403)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:347)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
...(snip)...
{code}
Note that the same war file can be deployed and the JSPs works on Tomcat 8.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)