无法解析 java.io.ObjectInputStream 类型。它从所需的.class文件中间接引用

我已经下载了Eclipse并尝试创建一个示例servlet程序,但我得到了以下错误

无法解析 java.io.ObjectInputStream 类型。它从所需的.class文件中间接引用

我已正确配置构建路径。我正在使用Java 8和Apache Tomcat 7,两者的库都被正确引用了。

问题专门针对 Java EE。通常,Java SE项目运行良好。


答案 1

Java 8 Update 91 中发生了一些事情,破坏了现有的 JSP 代码。这似乎很清楚。以下是类似问题和错误报告的示例:

所有这些都是关于Java 8 Update 91(或更高版本)的问题,这些问题在使用早期JRE / JDK版本时不存在。


以下 2016 年 1 月 22 日的 OpenJDK 变更集似乎是相关的:http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/rev/32f64c19b5fb(提交消息“8144430:改进 JMX 连接”)。变更集似乎与此漏洞(https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3427)相关,此漏洞在红帽错误报告的注释中提到,https://bugzilla.redhat.com/show_bug.cgi?id=1336481

更新 91 发行说明文档提到了 JDK-8144430(非公共票证):http://www.oracle.com/technetwork/java/javase/8u91-relnotes-2949462.html

在“Oracle 重要补丁更新通报 - 2016 年 4 月”中,提到了 CVE-2016-3427 漏洞:http://www.oracle.com/technetwork/security-advisory/cpuapr2016v3-2985753.html


答案 2

您只需要将 Tomcat 版本升级到 Tomcat 8.0.xx 即可。Java8 <-> Tomcat8

这是我一直在使用的配置,它一直效果很好JDK version Tomcat versions


推荐