JBWEB004062: Unable to compile class for JSP is suddenly logged in server.log repeatedly

Solution Verified - Updated -

Issue

Even though the jsp file itself was not corrupted, the following error suddenly began appearing repeatedly in server.log. After restarting JBoss EAP instance, the error no longer occurred.

ERROR [io.undertow.request] (default task-2) UT005023: Exception handling request to /app/test.jsp: org.apache.jasper.JasperException: JBWEB004062: Unable to compile class for JSP:

JBWEB004061: An error occurred at line: 23 in the generated java file
_jspx_dependants cannot be resolved to a variable

JBWEB004061: An error occurred at line: 27 in the generated java file
_jspx_imports_packages cannot be resolved to a variable

JBWEB004061: An error occurred at line: 31 in the generated java file
_jspx_imports_classes cannot be resolved to a variable

JBWEB004061: An error occurred at line: 35 in the generated java file
_jspxFactory cannot be resolved

JBWEB004061: An error occurred at line: 64 in the generated java file
_jspxFactory cannot be resolved

JBWEB004061: An error occurred at line: 92 in the generated java file
_jspxFactory cannot be resolved

Stacktrace:
        at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:95)
        at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:198)
        at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:455)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:359)
        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:791)
        at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
        at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
        at io.undertow.jsp.JspFileHandler.handleRequest(JspFileHandler.java:32)
        at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
        at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
        at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
        at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
        at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
        at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
        at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:251)
        at io.undertow.servlet.handlers.ServletInitialHandler.dispatchToServlet(ServletInitialHandler.java:196)
        at io.undertow.servlet.spec.RequestDispatcherImpl.includeImpl(RequestDispatcherImpl.java:391)
        at io.undertow.servlet.spec.RequestDispatcherImpl.setupIncludeImpl(RequestDispatcherImpl.java:326)
        at io.undertow.servlet.spec.RequestDispatcherImpl.include(RequestDispatcherImpl.java:290)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:907)
        at org.apache.jsp.test_jsp._jspService(test_jsp.java:96)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

We have also observed that the following error may occasionally appear in server.log. Unlike the previously mentioned JBWEB004062, it does not occur repeatedly:

ERROR [org.apache.jasper.compiler] (default task-1) JBWEB005027: Error reading source file /path/to/jboss-eap-7.2/standalone/tmp/app.war/org/apache/jsp/header.java: java.io.FileNotFoundException: /path/to/jboss-eap-7.2/standalone/tmp/app.war/org/apache/jsp/header.java (No such file or directory)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(FileInputStream.java:195)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at java.io.FileInputStream.<init>(FileInputStream.java:93)
    at org.apache.jasper.compiler.JDTCompiler$1CompilationUnit.getContents(JDTCompiler.java:108)
    at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:11374)
    at org.eclipse.jdt.internal.compiler.parser.Parser.parse(Parser.java:11346)
    at org.eclipse.jdt.internal.compiler.parser.Parser.dietParse(Parser.java:9760)
    at org.eclipse.jdt.internal.compiler.Compiler.internalBeginToCompile(Compiler.java:815)
    at org.eclipse.jdt.internal.compiler.Compiler.beginToCompile(Compiler.java:385)
    at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:431)
    at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:417)
    at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:445)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:359)
    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:791)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    at io.undertow.jsp.JspFileHandler.handleRequest(JspFileHandler.java:32)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:251)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchToServlet(ServletInitialHandler.java:196)
    at io.undertow.servlet.spec.RequestDispatcherImpl.includeImpl(RequestDispatcherImpl.java:391)
    at io.undertow.servlet.spec.RequestDispatcherImpl.setupIncludeImpl(RequestDispatcherImpl.java:326)
    at io.undertow.servlet.spec.RequestDispatcherImpl.include(RequestDispatcherImpl.java:290)
    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:907)
    at org.apache.jsp.test_jsp._jspService(test_jsp.java:96)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    ...

ERROR [io.undertow.request] (default task-1) UT005023: Exception handling request to /app/test.jsp: javax.servlet.ServletException: JBWEB004036: File &quot;/./header.jsp&quot; not found
    at org.apache.jasper.servlet.JspServlet.handleMissingResource(JspServlet.java:424)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:405)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:347)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:791)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
    at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
    at io.undertow.jsp.JspFileHandler.handleRequest(JspFileHandler.java:32)
    at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
    at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:251)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchToServlet(ServletInitialHandler.java:196)
    at io.undertow.servlet.spec.RequestDispatcherImpl.includeImpl(RequestDispatcherImpl.java:391)
    at io.undertow.servlet.spec.RequestDispatcherImpl.setupIncludeImpl(RequestDispatcherImpl.java:326)
    at io.undertow.servlet.spec.RequestDispatcherImpl.include(RequestDispatcherImpl.java:290)
    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:907)
    at org.apache.jsp.test_jsp._jspService(test_jsp.java:96)
    ...

or

ERROR [io.undertow.request] (default task-1) UT005023: Exception handling request to /app/test.jsp: org.apache.jasper.JasperException: JBWEB004001: Unable to compile class for JSP
        ...
Caused by: java.io.IOException: classFile.delete() failed
        at org.apache.jasper.compiler.SmapUtil$SDEInstaller.install(SmapUtil.java:202)
        at org.apache.jasper.compiler.SmapUtil.installSmap(SmapUtil.java:163)
        at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:470)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:359)
        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)
        ... 69 more

or

ERROR [io.undertow.request] (default task-1) UT005023: Exception handling request to /app/test.jsp: javax.servlet.ServletException: java.lang.ClassFormatError: Truncated class file
        ...
Caused by: java.lang.ClassFormatError: Truncated class file
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at org.apache.jasper.servlet.JasperLoader.access$200(JasperLoader.java:42)
        at org.apache.jasper.servlet.JasperLoader$1.run(JasperLoader.java:152)
        at org.apache.jasper.servlet.JasperLoader$1.run(JasperLoader.java:145)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.jasper.servlet.JasperLoader.findClass(JasperLoader.java:144)
        at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:138)
        at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:72)
        at org.wildfly.extension.undertow.deployment.UndertowJSPInstanceManager.newInstance(UndertowJSPInstanceManager.java:59)
        at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:167)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:403)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:347)
        ... 66 more

or

ERROR [io.undertow.request] (default task-1) UT005023: Exception handling request to /app/test.jsp: org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.header_jsp
        ...
Caused by: java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.header_jsp
    at org.apache.jasper.servlet.JasperLoader$1.run(JasperLoader.java:157)
    at org.apache.jasper.servlet.JasperLoader$1.run(JasperLoader.java:145)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.jasper.servlet.JasperLoader.findClass(JasperLoader.java:144)
    at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:138)
    at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:72)
    at org.wildfly.extension.undertow.deployment.UndertowJSPInstanceManager.newInstance(UndertowJSPInstanceManager.java:59)
    at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:167)
    ... 67 more

Environment

  • Red Hat JBoss Enterprise Application Platform (EAP)
    • 7

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content