Câu trả lời:
Bạn có thể làm điều đó cũng như thế này:
Nó sẽ tạo thư mục WEB-INF trong src / main / webapp và một tệp web.xml trong đó.
web.xml
tệp không cần thiết . Thay vào đó, bạn nên khắc phục sự cố này trong công cụ xây dựng (ví dụ: maven).
Đây là một lỗi maven. Nó nói rằng nó đang mong đợi một tệp web.xml trong dự án của bạn bởi vì nó là một ứng dụng web, như được chỉ ra bởi <packaging>war</packaging>
. Tuy nhiên, đối với các ứng dụng web gần đây, tệp web.xml là hoàn toàn tùy chọn. Maven cần phải bắt kịp quy ước này. Thêm phần này vào maven của bạn pom.xml
để cho maven bắt kịp và bạn không cần thêm một thứ vô dụng web.xml
vào dự án của mình:
<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>
Đây là một giải pháp tốt hơn so với việc thêm một sản phẩm nào web.xml
vì cách này sản phẩm cuối cùng của bạn luôn sạch sẽ, bạn chỉ đang thay đổi các tham số xây dựng của mình.
Đối với các phiên bản hiện tại của maven, bạn cũng có thể sử dụng phiên bản ngắn hơn:
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
Interface WebApplicationInitializer
thì câu trả lời này là cách tiếp cận đúng. Đó là cách hợp lý để giải quyết vấn đề này - không cần phải thêm vào web.xml
sau khi thực hiện các bước để sống mà không có nó!
<properties><failOnMissingWebXml>false</failOnMissingWebXml></properties>
đủ các thay vì các cài đặt cấu hình plugin dài dòng hơn.
Nếu bạn đã có web.xml dưới / src / main / webapp / WEB-INF nhưng bạn vẫn nhận được lỗi "web.xml là mất tích và được thiết lập là true", bạn có thể kiểm tra xem bạn đã bao gồm / src / main / webapp trong nguồn dự án của bạn.
Dưới đây là các bước bạn có thể làm theo:
(Tôi đã xác minh điều này với Eclipse Mars)
Nếu bạn sử dụng Spring Tool Suite, tùy chọn Tạo Stub Descriptor Stub được di chuyển trong Java EE Tools, vì vậy bạn:
Điều này sẽ tạo tệp web.xml trong thư mục src / main / webapp / WEB-INF / và tất nhiên sẽ xóa lỗi khỏi tệp pom.xml của Maven.
Tôi có cùng một vấn đề. Sau khi nghiên cứu và googling, tôi đã giải quyết vấn đề của mình:
Nhấp chuột phải vào thư mục dự án, đi đến Java EE Tools
, chọn Generate Deployment Descriptor Stub
. Điều này sẽ tạo ra web.xml
trong thư mục src/main/webapp/WEB-INF
.
Bạn cũng có thể làm điều này ít dài dòng hơn
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
Eclipse nhận ra webapp
thư mục mặc định không chính xác . Vì vậy, chúng ta nên thiết lập rõ ràng bằng cách 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>
Sau khi lưu cài đặt này, lỗi sẽ không bao giờ xảy ra nếu xóa nó. (Tôi không thể giải thích tại sao.)
Tôi đã có cùng một vấn đề, mặc dù tôi đã có 'src/main/webapp/WEB-INF/'
thư mục chính xác web.xml
.
Vấn đề biến mất sau khi tôi tạo lại cấu hình (maven-> nhật thực) với
Maven build..
tôi đã thực thimvn eclipse:clean eclipse:eclipse
Và sau đó tôi đã sử dụng Maven -> Update Project
để thêm các tùy chọn cụ thể cho plugin (nhật thực-> maven).
Tôi chỉ gặp phải vấn đề này trong nhật thực, mọi thứ đều hoạt động tốt trong dòng lệnh Maven và tệp web.xml của tôi tồn tại. Đó là một dự án trưởng thành (đã được triển khai trong sản xuất) đã bị ảnh hưởng. Vấn đề của tôi gắn liền với siêu dữ liệu nhật thực. Có một vấn đề với một trong các tệp trong thư mục .sinstall / của tôi, cụ thể là org.eclipse.wst.common.component đã bị thay đổi. Tôi đã có thể khôi phục tập tin này về phiên bản trước đó, điều này đã giải quyết vấn đề trong trường hợp của tôi.
Lưu ý rằng câu trả lời của Yuci không có tác dụng với tôi, khi tôi cố gắng nhấp vào Triển khai hội trong các thuộc tính nhật thực, tôi đã gặp một lỗi cho biết "trang hiện đang hiển thị chứa các giá trị không hợp lệ."
Làm cái này:
Đi và nhấp chuột phải vào Deployment Descriptor và nhấp vào Tạo Stub Descriptor Stub.
Không có ý nghĩa gì khi tạo một tệp web.xml chỉ cần elcipse muốn nó, thậm chí không cần. Đây là trường hợp nếu bạn có nhúng conatiner servlet hoặc sống mà không có xml cfg như spring-boot. Bạn chỉ cần JavaEE (công cụ vô dụng) trong nhật thực ở cấp dự án hoặc toàn cầu
Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK
Chọn dự án của bạn và chọn tùy chọn "Mô tả triển khai" và sau đó chọn "Tạo sơ khai mô tả triển khai"
Bước: Chọn dự án của bạn và chọn tùy chọn "Bộ mô tả triển khai" và sau đó chọn "Tạo sơ khai mô tả triển khai" hoạt động tốt. Vấn đề là không phải lúc nào chúng ta cũng cần web.xml, vì vậy tốt nhất là nối sai vào pom.xml
Nhấp chuột phải vào project --> New --> Other --> Standard Deployment Descriptor(web.xml)
sau đó nhấn Next nó sẽ tạo WEB-INF
thư mục với một web.xml
tập tin bên trong.
Thế là xong.
Tạo thư mục WEB-INF trong src / webapp và bao gồm trang web.xml trong thư mục WEB-INF sau đó
maven-war-plugin
. Đây là một plugin ẩn trong đó giá trị mặc định cho thuộc tính cấu hình đó là đúng. Bạn cần khai báo rõ ràng và đặt thuộc tính cấu hình thành false. Xem thêm tại đây . Hoặc bạn có thể thêm một tệp