Eclipse Error: web.xml hilang dan failOnMissingWebXml disetel ke true

1. Perkenalan

Dalam tutorial ini, kita akan membahas kesalahan umum Eclipse, “ web.xml hilang dandisetel ke true ", yang kami dapatkan saat membuat aplikasi web.

2. Eclipse Error

Dalam aplikasi web Java, web.xml adalah nama standar deskriptor penerapan.

Kita dapat membuat aplikasi web menggunakan Maven atau proyek web dinamis menggunakan Eclipse. Eclipse tidak membuat deskriptor penerapan default web.xml di bawah direktori WEB-INF / .

Spesifikasi Java EE 6+ telah berusaha untuk tidak menekankan deskriptor penerapan, karena dapat diganti dengan anotasi . Namun, versi yang lebih rendah masih membutuhkannya.

The failOnMissingWebXml properti adalah salah satu sifat dari perang Plugin Apache Maven, org.apache.maven.plugins: maven-perang-plugin. Nilai default plugin ini adalah benar untuk versi <3.1.0 dan salah untuk versi yang lebih baru.

Ini berarti bahwa jika kita menggunakan maven-war-plugin lebih awal dari versi 3.1.0, dan file web.xml tidak ada, maka tujuan untuk memaketkannya sebagai file perang akan gagal.

3. Menggunakan web.xml

Untuk semua kasus di mana kita masih membutuhkan deskriptor penerapan web.xml , kita dapat dengan mudah menghasilkan web.xml di Eclipse :

  • Klik kanan pada proyek web
  • Arahkan ke Alat Java EE pada menu
  • Pilih Generate Deployment Descriptor Stub dari sub-menu

Voila! yang web.xml file yang dihasilkan di bawah WEB-INF / direktori.

4. Tanpa web.xml

Dalam kebanyakan kasus, kami mungkin tidak memerlukan file web.xml sama sekali. Alih-alih menyimpan file web.xml kosong di proyek kita, kita bisa melewati pembuatannya sama sekali. Untungnya, ada dua pendekatan sederhana, bergantung pada versi maven-war-plugin yang kami gunakan.

4.1. Menggunakan maven-war-plugin Before 3.1.0

Kita dapat mengkonfigurasi semua plugin proyek Maven di file bagian dari pom.xml kami . Seperti yang telah kami katakan sebelumnya, nilai default untuk failOnMissingWebXml adalah true sebelum versi 3.1.0 plugin.

Mari deklarasikan maven-war-plugin di pom.xml kita dan secara eksplisit setel properti failOnMissingWebXml ke false :

 maven-war-plugin 2.4  false  

4.2. Menggunakan maven-war-plugin 3.1.0 dan Nanti

Kita juga dapat menghindari pengaturan properti secara eksplisit dengan mengupgrade versi maven-war-plugin . Nilai default dari properti failOnMissingWebXml adalah palsu untuk maven-perang-Plugin versi 3.1.0 dan kemudian:

 maven-war-plugin 3.1.0 

5. Kesimpulan

Pada artikel ini, kami melihat alasan di balik kesalahan web.xml yang hilang dan beberapa pendekatan untuk memperbaikinya.

Seperti biasa, contoh kami dapat ditemukan di GitHub.