JBWEB004062: Unable to compile class for JSP is suddenly logged in server.log repeatedly
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 "/./header.jsp" 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.