Pregunta El tipo java.io.ObjectInputStream no se puede resolver. Se hace referencia indirectamente desde archivos .class requeridos


Descargué Eclipse e intenté crear un programa de servlets de muestra, pero obtuve un error de seguimiento

El tipo java.io.ObjectInputStream no se puede resolver. Se hace referencia indirectamente desde archivos .class requeridos

He configurado la ruta de compilación correctamente. Estoy usando Java 8 y Apache Tomcat 7 y las bibliotecas para ambos están referenciadas correctamente.

El problema es específicamente para Java EE solamente. Por lo general, los proyectos de Java SE funcionan bien.


32
2018-05-01 05:02


origen


Respuestas:


Algo sucedió en Java 8 Update 91 que rompió el código JSP existente. Eso parece bastante claro. Aquí hay una muestra de preguntas similares e informes de errores:

Todo esto se trata de problemas con Java 8 Update 91 (o posterior) que no están presentes cuando se usan versiones anteriores de JRE / JDK.


El siguiente conjunto de cambios OpenJDK del 22 de enero de 2016 parece estar relacionado: http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/rev/32f64c19b5fb (confirme el mensaje "8144430: mejore las conexiones JMX"). El conjunto de cambios parece estar relacionado con esta vulnerabilidad, https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3427, que se menciona en un comentario a este informe de errores de Red Hat, https://bugzilla.redhat.com/show_bug.cgi?id=1336481.

El documento de notas de la versión Update 91 menciona JDK-8144430 (ticket no público): http://www.oracle.com/technetwork/java/javase/8u91-relnotes-2949462.html.

En "Aviso de actualización de parche crítico de Oracle - abril de 2016", se menciona la vulnerabilidad CVE-2016-3427: http://www.oracle.com/technetwork/security-advisory/cpuapr2016v3-2985753.html.


30
2017-07-22 18:27



Simplemente necesita actualizar su versión de Tomcat, a Tomcat 8.0.xx. Java8 <-> Tomcat8

Esta es la configuración que he estado usando y siempre funcionó bien JDK version Tomcat versions


3
2018-05-03 12:29



El uso del último 7.x Tomcat (actualmente 7.0.69) resolvió el problema para mi.

También probamos una solución en un viejo error eclipse, tal vez eso también ayudó a resolver el problema.

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

Solución:

  • Ventana-> Preferencias-> Java-> JRE instalados
  • Desmarcar JRE seleccionado
  • Haga clic en Aceptar (este paso puede ser opcional?)
  • Ver JRE de nuevo

1
2017-07-03 16:54



Solución:

Ventana -> Preferencias -> Java -> JRE instalados, selecciona un JRE diferente

tal vez esta edición JDK no sea adecuada:

enter image description here


Así que prueba este en su lugar:

enter image description here

¡Problema resuelto!


1
2018-05-01 13:18



el mismo problema conmigo Esta no es una solución, sino una solución, que funcionó para mí: Buildpath-> Configure buildpath-> Libraries-> Aquí se elimina la biblioteca del sistema JRE que apunta a JRE8 y se agrega la biblioteca del sistema JRE para JRE7.


0
2017-08-18 18:20



La actualización a tomcat 7.0.70 resolvió el problema para mí


0
2017-07-26 01:41



De acuerdo, esta pregunta fue hace un año, pero recientemente también tuve este problema.

Entonces, ¿qué hice?

  1. Actualiza tomcat 7 a tomcat 8.
  2. Actualiza a la última versión de java (java 1.8.0_141).
  3. Actualice la Biblioteca del Sistema JRE en Proyecto> Propiedades> Ruta de compilación de Java. Asegúrate de que tenga la última versión que en mi caso es jre1.8.0_141 (antes era la versión anterior jre1.8.0_111)

Cuando hice los dos primeros pasos, todavía no elimina el error, por lo que el último paso es importante. No cambió automáticamente la ruta de compilación para jre.


0
2017-12-16 04:25



Estoy usando Google appengine java sdk y estaba enfrentando un problema similar. Tuve que agregar

<runtime>java8</runtime>

en el archivo appengine-web.xml para que funcione.


0
2017-10-09 14:29



Yo también estaba enfrentando el mismo problema. Tenía Jdk1.7.0.79. Luego lo actualicé con Jdk8.0.120. Entonces el problema fue resuelto. Después de completar con éxito jdk actualizado. Ir a proyecto-> limpiar. Reconstruirá el proyecto y se eliminará toda alerta roja.


-1