Le type java.io.ObjectInputStream ne peut être résolu. Il est indirectement référencé de besoin.les fichiers de classe
J'ai téléchargé Eclipse et essayé de créer un programme de servlet d'échantillon mais j'ai obtenu l'erreur suivante
le type java.io.ObjectInputStream ne peut être résolu. Il est indirectement référencé de besoin .les fichiers de classe
j'ai configuré le chemin de construction correctement. J'utilise Java 8 et Apache Tomcat 7 et les bibliothèques pour les deux sont référencées correctement.
le problème est spécifiquement pour Java EE seulement. Normalement, les projets Java SE fonctionnent bien.
9 réponses
quelque chose s'est produit dans Java 8 Update 91 qui a cassé le code JSP existant. Cela semble assez clair. Voici un échantillon de questions similaires et de rapports de bogue:
- impossible de compiler le fichier JSP avec JDK1.8.0_92
- printemps MVC-impossible de compiler la classe pour JSP
- impossible d'accéder à CloudPlatform Client
- https://bugs.openjdk.java.net/browse/JDK-8155588 (fermé que "pas un problème")
- https://bugs.openjdk.java.net/browse/JDK-8155223 (fermé que "pas un problème")
- https://access.redhat.com/solutions/2294701
- https://alluxio.atlassian.net/browse/ALLUXIO-1956
- https://jira.atlassian.com/browse/CWD-4729
- https://community.exoplatform.com/portal/intranet/forum/topic/topic991e097d9e45345236bb2bd1920a4c68
- https://issues.apache.org/jira/browse/OOZIE-2533 (tiré d'un commentaire:" This is really looking like a JDK bug")
- https://bugzilla.redhat.com/show_bug.cgi?id=1337940 (le commentaire 2 mentionne passage à
java.io.ObjectInputStream
dans la mise à jour 91 qui "l'a rendu incompatible avec la version actuelle de RHEL6") - https://github.com/mit-cml/appinventor-sources/issues/814
- https://community.oracle.com/thread/3953395
tout cela concerne des problèmes de mise à jour de Java 8 91 (ou plus tard) qui ne sont pas présents lors de l'utilisation de versions JRE/JDK antérieures.
les changements OpenJDK suivants à partir du 22 janvier 2016 semblent être liés: http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/rev/32f64c19b5fb (commit message"8144430: Improve JMX connections"). Le jeu de modifications semble être lié à cette vulnérabilité, https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3427 , qui est mentionné dans un commentaire à ce rapport de bogue de Red Hat, https://bugzilla.redhat.com/show_bug.cgi?id=1336481 .
La mise à Jour 91 notes de version de document mentionne JDK-8144430 (non-public de billet): http://www.oracle.com/technetwork/java/javase/8u91-relnotes-2949462.html .
dans "Oracle Critical Patch Update Advisory-April 2016", la vulnérabilité CVE-2016-3427 est mentionnée: http://www.oracle.com/technetwork/security-advisory/cpuapr2016v3-2985753.html .
vous avez simplement besoin de mettre à jour votre version Tomcat, à Tomcat 8.0.XXème. Java8 <-> Tomcat8
C'est la configuration que j'ai utilisé et il a toujours bien fonctionné
à l'Aide de la dernière 7.X Tomcat (actuellement 7.0.69) a résolu le problème pour moi.
nous avons également essayé une solution dans un vieux bug eclipse, peut-être que cela a fait partie pour résoudre le problème, aussi?
https://bugs.eclipse.org/bugs/show_bug.cgi?id=67414
solution de contournement:
- Window->Preferences->Java->Installé Jre
- Décocher la case sélectionnée JRE
- cliquez sur OK (cette étape peut être facultative?)
- Vérifier JRE nouveau
solution de contournement:
Fenêtre -> Préférences -> Java -> Installé Jre , sélectionnez un autre JRE
peut-être que cette édition JDK ne convient pas:
essayez donc celui-ci à la place:
Problème résolu!
même problème avec moi. Ce n'est pas une solution, mais une solution qui a fonctionné pour moi: Buildpath - > Configure buildpath - > Libraries - > ici, supprimez la bibliothèque système JRE pointant vers JRE8 et ajoutez la bibliothèque système JRE pour JRE7.
j'étais également confronté à la même question. J'avais Jdk1.7.0.79. Puis je l'ai mis à jour avec Jdk8.0.120. Alors le problème est résolu. Après avoir terminé avec succès la mise à niveau de jdk. Aller au projet - > nettoyage. Il reconstruira le projet et toute alerte rouge sera éliminée.
Ok, cette question était il y a un an mais j'ai récemment eu ce problème aussi.
alors ce que j'ai fait:
- mise à Jour de tomcat 7 à tomcat 8.
- mise à Jour vers la dernière version de java (java 1.8.0_141).
- Update the JRE System Library in Project > Properties > Java Build Path . Assurez-vous qu'il a la dernière version qui dans mon cas est jre1.8.0_141 (avant c'était de la précédente version jre1.8.0_111)
Quand j'ai fait les deux premières étapes, il n'est toujours pas supprimer l'erreur, la dernière étape est importante. Il n'a pas changé automatiquement le chemin de compilation pour jre.
j'utilise Google appengine java sdk et faisait face à un problème similaire. J'ai dû ajouter
<runtime>java8</runtime>
dans appengine-web.fichier xml pour le faire fonctionner.