Тип java.io.ObjectInputStream не может быть разрешен. На него косвенно ссылаются необходимые файлы.class

Я скачал Eclipse и попытался создать пример программы сервлета, но я получил следующую ошибку

Тип java.io.ObjectInputStream не может быть разрешен. На него косвенно ссылаются необходимые файлы.class

Я правильно настроил путь сборки. Я использую Java 8 и Apache Tomcat 7, и библиотеки для обеих ссылок указаны правильно.

Проблема специально для Java EE. Обычно проекты Java SE работают нормально.

10 ответов

В Java 8 Update 91 произошло что-то, что сломало существующий код JSP. Это кажется довольно ясным. Вот пример похожих вопросов и сообщений об ошибках:

Все это касается проблем с Java 8 Update 91 (или более поздней версии), которые отсутствуют при использовании более ранних версий JRE/JDK.


Следующая ревизия OpenJDK от 22 января 2016 года, по-видимому, связана: http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/rev/32f64c19b5fb (зафиксировать сообщение "8144430: улучшить соединения JMX"). Похоже, что набор изменений связан с этой уязвимостью, https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3427, которая упоминается в комментарии к этому сообщению об ошибке Red Hat, https://bugzilla.redhat.com/show_bug.cgi?id=1336481.

В документе с примечаниями к выпуску обновления 91 упоминается JDK-8144430 (непубличный билет): http://www.oracle.com/technetwork/java/javase/8u91-relnotes-2949462.html.

В "Рекомендации по обновлению Oracle Critical Patch - апрель 2016 года" упоминается уязвимость CVE-2016-3427: http://www.oracle.com/technetwork/security-advisory/cpuapr2016v3-2985753.html.

Вам просто нужно обновить версию Tomcat до Tomcat 8.0.xx.Java8 <-> Tomcat8

Это конфигурация, которую я использовал, и она всегда работала хорошо Версия JDK Версии Tomcat

Причина: старые версии JSP-компилятора Tomcat 6, похоже, не знают об улучшениях пула констант JDK 8 - например. метод обрабатывает. Новый код в JDK 8u использует дескриптор метода вместо создания анонимного класса. Это приведет к тому, что дескриптор метода будет указан в пуле констант, и компилятор eclipse будет его подавлять - https://bz.apache.org/bugzilla/show_bug.cgi?id=56613

Хорошо, этот вопрос был год назад, но у меня недавно тоже была эта проблема.

Итак, что я сделал:

  1. Обновите Tomcat 7 до Tomcat 8.
  2. Обновление до последней версии Java (Java 1.8.0_141).
  3. Обновите Системную библиотеку JRE в Project> Properties> Java Build Path. Убедитесь, что у него самая последняя версия, в моем случае это jre1.8.0_141 (до того, как была предыдущая версия jre1.8.0_111)

Когда я сделал первые два шага, это все еще не устраняет ошибку, поэтому последний шаг важен. Он не изменил автоматически путь сборки для JRE.

Та же проблема со мной. Это не решение, а обходной путь, который мне помог: Buildpath->Configure buildpath->Libraries-> Здесь удалите системную библиотеку JRE, указывающую на JRE8, и добавьте системную библиотеку JRE для JRE7.

Использование последней версии 7.x Tomcat (в настоящее время 7.0.69) решило проблему для меня.

Мы также попытались обойти старый баг затмения, возможно, это тоже помогло решить проблему?

https://bugs.eclipse.org/bugs/show_bug.cgi?id=67414

Временное решение:

  • Окно-> Настройки->Java-> Установленные JRE
  • Снимите отметку с выбранного JRE
  • Нажмите OK (этот шаг может быть необязательным?)
  • Проверьте JRE снова

Временное решение:

Окно -> Настройки -> Java -> Установленные JRE, выберите другую JRE

возможно это издание JDK не подходит:

введите описание изображения здесь


Так что попробуйте этот вместо:

введите описание изображения здесь

Задача решена!

Я использую Google Appengine Java SDK и столкнулся с аналогичной проблемой. Я должен был добавить

<runtime>java8</runtime>

в файле appengine-web.xml, чтобы заставить его работать.

Обновление до Tomcat 7.0.70 решило проблему для меня

Я также столкнулся с той же проблемой. У меня был Jdk1.7.0.79. Затем я обновил его с помощью Jdk8.0.120. Тогда проблема решена. После успешного завершения обновления JDK. Перейти к проекту-> очистить. Это перестроит проект, и все красные предупреждения будут устранены.

Другие вопросы по тегам