TLDs under META-INF/resources inside the web-fragment jar are not loaded in JBoss EAP 7.x
Issue
TLDs under META-INF/resources inside the web-fragment jar are not loaded in JBoss EAP 7.x.
- An example directory structure of the web-fragment jar
taglib-jar
|-- META-INF
| |-- resources
| | `-- WEB-INF
| | `-- tlds
| | `-- example.tld
| `-- web-fragment.xml
`-- simple
`-- ExampleTag.class
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>/ExampleTag</taglib-uri>
<taglib-location>/WEB-INF/tlds/example.tld</taglib-location>
</taglib>
</jsp-config>
</web-fragment>
The following ERROR is thrown at the deployment:
ERROR [org.wildfly.extension.undertow] (MSC service thread 1-8) WFLYUT0074: Could not find TLD /WEB-INF/tlds/example.tld
JSP returns "500 Internal Server Error" and Jastow throws the following ERROR when accessing the JSP which uses the taglib like <%@ taglib uri="/ExampleTag" prefix="say"%>:
ERROR [io.undertow.request] (default task-1) UT005023: Exception handling request to /example.war/example.jsp: org.apache.jasper.JasperException: JBWEB004036: File "/ExampleTag" 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)...
Environment
- Red Hat JBoss Enterprise Application Platform (EAP)
- 7.x
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
