Jawaban:
Anda dapat melakukannya juga seperti ini:
Ini akan menghasilkan folder WEB-INF di src / main / webapp dan web.xml di dalamnya.
web.xml
file yang tidak perlu . Anda harus memperbaiki masalah ini di alat Anda membangun (yaitu pakar) sebagai gantinya.
Ini adalah kesalahan pakar. Ia mengatakan bahwa ia mengharapkan file web.xml di proyek Anda karena itu adalah aplikasi web, seperti yang ditunjukkan oleh <packaging>war</packaging>
. Namun, untuk aplikasi web terbaru, file web.xml sepenuhnya opsional. Maven perlu mengejar kebaktian ini. Tambahkan ini ke pakar pom.xml
untuk membuat pakar mengejar dan Anda tidak perlu menambahkan yang tidak berguna web.xml
ke proyek Anda:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
Ini adalah solusi yang lebih baik daripada menambahkan yang kosong web.xml
karena dengan cara ini produk akhir Anda tetap bersih, Anda hanya mengubah parameter build Anda.
Untuk versi pakar terkini, Anda juga bisa menggunakan versi yang lebih pendek:
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
Interface WebApplicationInitializer
jawaban ini adalah pendekatan yang benar. Ini adalah cara yang masuk akal untuk menyelesaikan masalah ini - tidak ada gunanya menambahkan web.xml
setelah mengambil langkah-langkah untuk hidup tanpanya!
<properties><failOnMissingWebXml>false</failOnMissingWebXml></properties>
mencukupi daripada pengaturan konfigurasi plugin yang lebih verbose.
Jika Anda sudah memiliki web.xml di bawah / src / main / webapp / WEB-INF tetapi Anda masih mendapatkan kesalahan "web.xml hilang dan disetel ke true", Anda dapat memeriksa apakah Anda telah menyertakan / src / main / webapp di sumber proyek Anda.
Berikut langkah-langkah yang bisa Anda ikuti:
(Saya memverifikasi ini dengan Eclipse Mars)
Jika Anda menggunakan Spring Tool Suite, opsi untuk Menghasilkan Stub Descriptor Descriptor dipindahkan di bawah Java EE Tools, sehingga Anda:
Ini akan membuat file web.xml di dalam folder src / main / webapp / WEB-INF /, dan tentu saja menghapus kesalahan dari file pom.xml Maven.
Saya memiliki masalah yang sama. Setelah belajar dan googling, saya telah menyelesaikan masalah saya:
Klik kanan pada folder proyek, pergi ke Java EE Tools
, pilih Generate Deployment Descriptor Stub
. Ini akan dibuat web.xml
di folder src/main/webapp/WEB-INF
.
Anda juga dapat melakukan ini yang kurang verbose
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
Eclipse mengenali webapp
direktori default yang salah . Karena itu kita harus mengaturnya dengan jelas maven-war-plugin
.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<webappDirectory>src/main/webapp</webappDirectory>
</configuration>
</plugin>
</plugins>
</build>
Setelah menyimpan pengaturan ini, kesalahan tidak akan pernah terjadi jika dihapus. (Saya tidak bisa menjelaskan alasannya.)
Saya memiliki masalah yang sama, meskipun saya memiliki 'src/main/webapp/WEB-INF/'
folder dengan benar web.xml
.
Masalahnya hilang setelah saya membuat ulang konfigurasi (maven-> eclipse) dengan
Maven build..
saya dieksekusimvn eclipse:clean eclipse:eclipse
Dan kemudian saya biasa Maven -> Update Project
menambahkan opsi spesifik plugin (eclipse-> maven).
Saya mengalami masalah ini hanya di gerhana, semuanya bekerja dengan baik di baris perintah Maven, dan file web.xml saya ada. Itu adalah proyek yang matang (sudah dikerahkan dalam produksi) yang terkena dampak. Masalah saya terkait dengan metadata gerhana. Ada masalah dengan salah satu file di folder .s / saya, khususnya org.eclipse.wst.common.component telah diubah. Saya dapat mengembalikan file ini ke versi sebelumnya, yang menyelesaikan masalah dalam kasus saya.
Perhatikan bahwa jawaban Yuci tidak berfungsi untuk saya, ketika saya mencoba mengklik Majelis Penempatan di properti gerhana, saya mendapat kesalahan yang mengatakan "halaman yang saat ini ditampilkan berisi nilai yang tidak valid."
Untuk Project with web.xml, present Project -> Properties -> Deployment Assembly, tempat Anda dapat menambahkan Folder src / main / webapp. Simpan perubahan. Bersihkan proyek untuk memulai.
Untuk Proyek dengan web.xml tidak ada, Setel failOnMissingWebXml menjadi false di pom.xml di bawah tag properti.
Melakukan hal ini:
Pergi dan klik kanan pada Deployment Descriptor dan klik Generate Deployment Descriptor Desubtor.
Tidak masuk akal untuk membuat web.xml hanya elcipse menginginkannya, bahkan tidak perlu. Ini adalah kasus jika Anda memiliki servlet conatiner yang tertanam atau hidup tanpa xml cfg seperti spring-boot. Anda baru saja mengaktifkan JavaEE (hal-hal yang tidak berguna) dalam gerhana di tingkat proyek atau global
Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK
Pilih proyek Anda dan pilih opsi "Deployment Descriptor" lalu pilih "Generate Deployment Descriptor Desubtor"
Langkah: Pilih proyek Anda dan pilih opsi "Deployment Descriptor" dan kemudian pilih "Generate Deployment Descriptor Descriptor" bekerja dengan baik. Masalahnya adalah tidak selalu kita membutuhkan web.xml, jadi yang terbaik adalah menambahkan false ke pom.xml
Klik kanan pada project --> New --> Other --> Standard Deployment Descriptor(web.xml)
lalu tekan Next maka akan membuat WEB-INF
folder dengan web.xml
file di dalamnya.
Itu sudah selesai.
Buat folder WEB-INF di src / webapp, dan sertakan halaman web.xml di dalam folder WEB-INF kemudian
maven-war-plugin
. Ini adalah plugin implisit di mana nilai default untuk properti konfigurasi itu benar. Anda perlu mendeklarasikannya secara eksplisit dan mengatur properti konfigurasi ke false. Lihat lebih lanjut di sini . Atau Anda dapat menambahkan web.xml kosong