此堆栈跟踪的相关部分是:
Caused by: java.lang.NullPointerException at org.apache.jasper.servlet.TldScanner$TldScannerCallback.scanWebInfClasses(TldScanner.java:401) at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:208) at org.apache.jasper.servlet.TldScanner.scanJars(TldScanner.java:262) at org.apache.jasper.servlet.TldScanner.scan(TldScanner.java:106) at org.apache.jasper.servlet.JasperInitializer.onStartup(JasperInitializer.java:103) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5261) at org.apache.catalina.util.Lifecyclebase.start(Lifecyclebase.java:147) ... 6 more
Tomcat
8.0.35(2016年5月16日发布)中引入了一个错误
-
TldScannerCallback.scanWebInfClasses方法已更改为依赖于该
getResourcePaths方法。它已在Tomcat
8.0.36(2016年6月9日发布)中修复。
如果它可以帮助其他人找到答案,我只是在从Tomcat 8.0.32进行次要版本升级到8.0.35(Amazon
EC2实例今天早上推送了8.0.35更新)之后才遇到此问题。以我为例,自从Tomcat 5被此更新破坏以来,一个无需修改即可运行的Web应用程序。
使用上述错误报告中的建议,我能够解决该问题。具体来说,一个空
WEB-INF/classes/meta-INF文件夹正在触发此错误,因此我在该文件夹中创建了MANIFEST.MF文件。
这里是提交所引入的错误,而这里犯的是固定的bug,在提交者是指它作为一个“
罕见的NPE的情况下
”,知道是什么意思(意味着文件夹很少空?)。在阅读了提交中的注释之后,很明显,这是一种抑制工作代码中的FindBugs报告的黑客,进而产生了破坏Web应用程序的实际错误。



