出于某种原因,当编译失败时,Tomcat 似乎正在尝试访问其编译缓存。
例如,如果我创建一个只包含 的 JSP Hello, <%=world%>!
,可以预见的是,我会收到一个错误:org.apache.jasper.JasperException: Unable to compile class for JSP
. 然而,随后的请求在 this 和org.apache.jasper.JasperException: org.apache.jasper.JasperException: Unable to load class for JSP
.
此外,如果我创建一个包含 的 JSP Hello!
,它当然可以正常工作。如果我修改它包含Hello, <%=name%>!
,则响应会在前面提到的编译错误和缓存的Hello!
.
这是怎么回事?
我终于找到了解决方案。
interval
显然,出于性能原因,每次都会检查 JSP的更改。可以将 Tomcat 配置为检查每个请求。在
web.xml
中,寻找:并添加:
感谢阿尔伯特的博客为我指明了正确的方向。
编辑:我还发现了这个错误,这似乎表明涉及到 Tomcat 的一些错误行为。