TLDs under META-INF/resources inside the web-fragment jar are not loaded in JBoss EAP 7.x

Solution Verified - Updated -

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.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.