我已經下載Eclipse和試圖建立一個樣本servlet程序引用,但我得到了以下錯誤無法解析類型java.io.ObjectInputStream。它是間接需要的.class文件
類型java.io.ObjectInputStream中不能得到解決。它是從所需的.class文件間接引用的
我已經正確配置了構建路徑。 我正在使用Java 8和Apache Tomcat 7和兩個庫都被正確引用。
問題僅限於Java EE。通常Java SE項目運行良好。
我已經下載Eclipse和試圖建立一個樣本servlet程序引用,但我得到了以下錯誤無法解析類型java.io.ObjectInputStream。它是間接需要的.class文件
類型java.io.ObjectInputStream中不能得到解決。它是從所需的.class文件間接引用的
我已經正確配置了構建路徑。 我正在使用Java 8和Apache Tomcat 7和兩個庫都被正確引用。
問題僅限於Java EE。通常Java SE項目運行良好。
與我同樣的問題。這不是解決方案,而是一種解決方法,適用於我: 構建路徑 - >配置構建路徑 - >庫 - >這裏刪除指向JRE8的JRE系統庫併爲JRE7添加JRE系統庫。
使用最新的7.x Tomcat(目前7.0.69)爲我解決了問題。
我們也在舊的eclipse bug中嘗試了一種解決方法,也許這也是解決問題的一部分嗎?
https://bugs.eclipse.org/bugs/show_bug.cgi?id=67414
解決方法:
我升級到tomcat-7.0.70,在某些情況下我看到了這個問題。我使用SUSE Linux版本12,並且所有都是協同的,但是我在版本11 SP 3上有一臺較舊的機器,並且該版本仍然存在JDK_1.8.0_91的錯誤。 – Jeff
解決方法:
窗口 - >首 - >的Java - >安裝的JRE, 選擇不同的JRE
也許這JDK版本不適合:
那麼試試這個來代替:
問題解決了!
降級時務必謹慎 - 值得注意的是,以前版本的Java中存在許多已知的安全漏洞。 – Jeff
發生在Java 8 Update 91中的事件破壞了現有的JSP代碼。這似乎很清楚。下面是類似的問題和錯誤報告的樣本:
java.io.ObjectInputStream
在更新91「與RHEL6的使它不兼容當前ECJ版「)所有這些都是關於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,在此紅帽bug報告https://bugzilla.redhat.com/show_bug.cgi?id=1336481的評論中提及。
Update 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。
升級到Tomcat 7.0.70解決了這個問題對我來說
我也面臨同樣的問題。我有Jdk1.7.0.79。然後我用Jdk8.0.120更新了它。然後問題解決了。成功完成升級後的jdk。轉到項目 - >清理。它會重建項目,所有紅色警報將被消除。
好的,這個問題是一年前,但我最近也遇到了這個問題。
所以我做了什麼:
當我做了前兩步仍然沒有刪除錯誤,所以最後一步很重要。它不會自動更改jre的構建路徑。
我使用Google appengine java sdk並面臨類似問題。我不得不添加
<runtime>java8</runtime>
在appengine-web.xml文件,使其工作。
這是關於什麼特定的Java 8版本? – mzjn
我得到了同樣的例外,同時使用jdk和jre版本8更新91. –
與此相關的紅帽問題:https://access.redhat.com/solutions/2294701 –