Pertanyaan Tipe java.io.ObjectInputStream tidak dapat diselesaikan. Ini secara tidak langsung direferensikan dari file kelas yang diperlukan


Saya telah mengunduh Eclipse dan mencoba membuat program sampel servlet tetapi saya mendapat kesalahan berikut

Tipe java.io.ObjectInputStream tidak dapat diselesaikan. Ini secara tidak langsung direferensikan dari file kelas yang diperlukan

Saya telah mengonfigurasi jalur build dengan benar. Saya menggunakan Java 8 dan Apache Tomcat 7 dan pustaka untuk keduanya dirujuk dengan benar.

Masalahnya khusus untuk Java EE saja. Biasanya proyek-proyek Java SE berjalan dengan baik.


32
2018-05-01 05:02


asal


Jawaban:


Sesuatu terjadi di Java 8 Update 91 yang melanggar kode JSP yang ada. Itu sepertinya cukup jelas. Berikut ini contoh pertanyaan serupa dan laporan bug:

Semua ini adalah masalah dengan Java 8 Update 91 (atau yang lebih baru) yang tidak ada saat menggunakan versi JRE / JDK sebelumnya.


Perubahan OpenJDK berikut dari 22 Januari 2016 tampaknya terkait: http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/rev/32f64c19b5fb (pesan commit "8144430: Tingkatkan koneksi JMX"). Perubahan tersebut tampaknya terkait dengan kerentanan ini, https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3427, yang disebutkan dalam komentar untuk laporan bug Red Hat ini, https://bugzilla.redhat.com/show_bug.cgi?id=1336481.

Catatan rilis Update 91 menyebutkan JDK-8144430 (tiket non-publik): http://www.oracle.com/technetwork/java/javase/8u91-relnotes-2949462.html.

Di "Oracle Critical Patch Update Advisory - April 2016", kerentanan CVE-2016-3427 disebutkan: http://www.oracle.com/technetwork/security-advisory/cpuapr2016v3-2985753.html.


30
2017-07-22 18:27



Anda hanya perlu meng-upgrade versi Tomcat Anda, ke Tomcat 8.0.xx. Java8 <-> Tomcat8

Ini adalah konfigurasi yang saya gunakan dan selalu berhasil dengan baik JDK version Tomcat versions


3
2018-05-03 12:29



Menggunakan 7.x Tomcat terbaru (saat ini 7.0.69) memecahkan masalah untuk saya.

Kami juga mencoba solusi di bug gerhana lama, mungkin itu juga merupakan bagian untuk menyelesaikan masalah juga?

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

Solusi:

  • Window-> Preferences-> Java-> Installed JREs
  • Hapus centang JRE terpilih
  • Klik OK (langkah ini mungkin opsional?)
  • Periksa kembali JRE

1
2017-07-03 16:54



Solusi:

Jendela -> Preferensi -> Jawa -> JRE yang diinstal, pilih JRE yang berbeda

mungkin edisi JDK ini tidak cocok:

enter image description here


Jadi cobalah yang ini sebagai gantinya:

enter image description here

Masalah dipecahkan!


1
2018-05-01 13:18



masalah yang sama dengan saya. Ini bukan solusi tetapi solusi, yang bekerja untuk saya: Buildpath-> Konfigurasi buildpath-> Libraries-> Di sini hapus pustaka sistem JRE yang menunjuk ke JRE8 dan tambahkan pustaka sistem JRE untuk JRE7.


0
2017-08-18 18:20



Upgrade ke tomcat 7.0.70 menyelesaikan masalah untuk saya


0
2017-07-26 01:41



Oke, pertanyaan ini setahun yang lalu, tetapi saya baru saja mendapatkan masalah ini juga.

Jadi apa yang saya lakukan:

  1. Perbarui tomcat 7 ke tomcat 8.
  2. Perbarui ke java terbaru (java 1.8.0_141).
  3. Perbarui Perpustakaan Sistem JRE di Project> Properties> Java Build Path. Pastikan ia memiliki versi terbaru yang dalam kasus saya adalah jre1.8.0_141 (sebelum itu versi sebelumnya jre1.8.0_111)

Ketika saya melakukan dua langkah pertama, tetap tidak menghapus kesalahan sehingga langkah terakhir adalah penting. Itu tidak secara otomatis mengubah jalur membangun untuk jre.


0
2017-12-16 04:25



Saya menggunakan sdk java Google appengine dan menghadapi masalah serupa. Saya harus menambahkan

<runtime>java8</runtime>

dalam file appengine-web.xml untuk membuatnya bekerja.


0
2017-10-09 14:29



Saya juga menghadapi masalah yang sama. Saya memiliki Jdk1.7.0.79. Lalu saya memperbaruinya dengan Jdk8.0.120. Kemudian masalahnya terpecahkan. Setelah berhasil menyelesaikan jdk yang ditingkatkan. Pergi ke proyek-> bersih. Ini akan membangun kembali proyek dan semua tanda merah akan dihilangkan.


-1