Yanıtlar:
Bunu şu şekilde de yapabilirsiniz:
Bu üretecektir WEB-INF klasörü src / main / webapp ve web.xml içinde.
web.xml
dosya ile sonuçlanacaktır . Bunun yerine derleme aracınızda (yani maven) bu sorunu düzeltmelisiniz.
Bu bir maven hatasıdır. Belirtildiği gibi bir web uygulaması olduğu için projenizde bir web.xml dosyası beklediğini söylüyor <packaging>war</packaging>
. Ancak, son web uygulamaları için bir web.xml dosyası tamamen isteğe bağlıdır. Maven'in bu sözleşmeye uyması gerekiyor. Senin maven Bu ekle pom.xml
maven izin yakalamak ve bir işe yaramaz eklemek gerekmez için web.xml
projenize:
<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>
Bu, boş bir web.xml
ürün eklemekten daha iyi bir çözümdür, çünkü bu şekilde nihai ürününüz temiz kalır, sadece yapı parametrelerinizi değiştirirsiniz.
Maven'in daha güncel sürümleri için daha kısa sürümü de kullanabilirsiniz:
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
Interface WebApplicationInitializer
, bu doğru yaklaşımdır. Bu sorunu çözmenin mantıklı yolu - web.xml
onsuz yaşamak için adımlar attıktan sonra eklemenin anlamı yok !
<properties><failOnMissingWebXml>false</failOnMissingWebXml></properties>
Daha ayrıntılı eklenti yapılandırma ayarları yerine yeterlilikler dahil .
Zaten / src / main / webapp / WEB-INF altında web.xml'niz varsa ancak "web.xml eksik ve true olarak ayarlanmış" hatası alıyorsanız, / src / main / webapp dosyasını ekleyip eklemediğinizi kontrol edebilirsiniz . proje kaynağınız.
İzleyebileceğiniz adımlar şunlardır:
(Eclipse Mars ile bunu doğruladım)
Spring Tool Suite kullanıyorsanız, Dağıtım Tanımlayıcı Saplaması Oluştur seçeneği Java EE Araçları altında taşınır, böylece:
Bu, src / main / webapp / WEB-INF / klasörü içinde web.xml dosyası oluşturur ve elbette Maven'in pom.xml dosyasından hatayı kaldırır.
Aynı problemim var. Okuduktan ve çalıştıktan sonra sorunumu çözdüm:
Proje klasörünü sağ tıklayın, gidin Java EE Tools
, seçin Generate Deployment Descriptor Stub
. Bu web.xml
klasörde oluşturulur src/main/webapp/WEB-INF
.
Daha az ayrıntılı olan bunu da yapabilirsiniz
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
Eclipse yanlış varsayılan webapp
dizini tanır . Bu nedenle açıkça belirtmeliyiz 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>
Bu ayarı kaydettikten sonra, kaldırılırsa hata asla ortaya çıkmaz. (Nedenini açıklayamıyorum.)
Doğru sorunu olan bir 'src/main/webapp/WEB-INF/'
klasör olmasına rağmen aynı sorunu yaşadım web.xml
.
I (maven-> Tutulma) yapılandırmayı yeniden sonra sorun kayboldu
Maven build..
İdammvn eclipse:clean eclipse:eclipse
Ve sonra Maven -> Update Project
(eclipse-> maven) eklentisine özel seçenekler eklerdim.
Sadece tutulmada bu sorunla karşılaştım, Maven komut satırında her şey iyi çalıştı ve web.xml dosyam vardı. Etkilenen olgun bir projeydi (zaten üretimde konuşlandırıldı). Benim sorunum tutulma meta verilerine bağlıydı. .Settings / klasörümdeki dosyalardan biriyle ilgili bir sorun vardı, özellikle org.eclipse.wst.common.component değiştirildi. Bu dosyayı benim durumumda sorunu çözen önceki sürümüne geri yükleyebildim.
Yuci'nin yanıtı benim için işe yaramadı, tutulma özelliklerinde Dağıtım Meclisi'ne tıklamaya çalıştığımda, "şu anda görüntülenen sayfa geçersiz değerler içeriyor" diyen bir hata aldım.
Web.xml içeren Project için, Klasör src / main / webapp ekleyebileceğiniz Project -> Özellikler -> Dağıtım Montajı'nı sunun. Değişikliği kaydet. Başlamak için projeyi temizleyin.
Web.xml içeren proje için mevcut değil tag.xml dosyasında failOnMissingWebXml öğesini false olarak ayarlayın.
Bunu yap:
Dağıtım Tanımlayıcı'ya sağ tıklayın ve Dağıtım Tanımlayıcı Saplaması Oluştur'a tıklayın.
Bir web.xml oluşturmak mantıklı değil, sadece elips onu istiyor, hatta gerek yok. Bu, yaylı önyükleme gibi gömülü veya xml cfg olmadan yaşayan sunucu uygulamanız varsa. JavaEE'yi (işe yaramaz şeyler) proje düzeyinde veya global olarak tutulmaya yönlendirirsiniz
Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK
Projenizi seçin ve "Dağıtım Tanımlayıcısı" seçeneğini belirleyin ve ardından "Dağıtım Tanımlayıcı Saplaması Oluştur" u seçin
Adım: Projenizi seçin ve "Dağıtım Tanımlayıcısı" seçeneğini belirleyin ve ardından "Dağıtım Tanımlayıcı Saplaması Oluştur" seçeneğini seçin. Sorun şu ki, web.xml'e ihtiyacımız her zaman böyle değil, bu yüzden pom.xml'e yanlış eklemek en iyisidir
Üzerine sağ tıklayın project --> New --> Other --> Standard Deployment Descriptor(web.xml)
sonra İleri'ye basın , içinde WEB-INF
bir web.xml
dosya olan klasör oluşturur .
Bu kadar.
Src / webapp içinde WEB-INF klasörü oluşturun ve WEB-INF klasörünün içine web.xml sayfasını ekleyin
maven-war-plugin
. Bu, söz konusu yapılandırma özelliği için varsayılan değerin doğru olduğu örtük bir eklentidir. Bunu açıkça bildirmeniz ve configuration özelliğini false olarak ayarlamanız gerekir. Daha fazlasını burada görün . Veya boş bir web.xml ekleyebilirsiniz