Xml 不见了,< failOnMissingWebXml > 被设置为 true

考虑一下:

Enter image description here

当我在 日食中创建一个简单的 玛文项目时,我得到了这个错误:

Xml 不见了,<failOnMissingWebXml>被设置为 没错

我怎样才能解决这个问题?

277455 次浏览

我也有同样的问题,在学习和搜索之后,我解决了我的问题:

右键单击项目文件夹,转到 Java EE Tools,选择 Generate Deployment Descriptor Stub。这将在文件夹 src/main/webapp/WEB-INF中创建 web.xml

你也可以这样做:

  1. 右键单击 探索者计划中的 部署描述符
  2. 选择 生成部署描述符存根

它将在 Src/main/webapp中生成 WEB-INF文件夹,并在其中生成 Xml文件夹。

enter image description here

这是一个专家级错误。它说它期望在您的项目中有一个 web.xml 文件,因为它是一个 Web 应用程序,如 <packaging>war</packaging>所示。但是,对于最近的 Web 应用程序,web.xml 文件是完全可选的。玛文需要赶上这次大会。 将这个添加到你的 maven pom.xml,让 maven 赶上,你不需要添加一个无用的 web.xml到你的项目:

<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>

这是一个比添加空 web.xml更好的解决方案,因为这样您的最终产品保持干净,您只是更改了构建参数。

对于更新的版本,你也可以使用更短的版本:

<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>

如果在/src/main/webapp/WEB-INF 下已经有了 web.xml,但仍然得到错误“ web.xml 丢失并设置为 true”,那么可以检查是否在项目源代码中包含了 /src/main/webapp

以下是你可以遵循的步骤:

  1. 您可以通过右键单击项目,打开其 Properties 对话框,然后打开“ Deployment Assembly”,在这里您可以添加 Folder/src/main/webapp。保存设置,然后,
  2. 转到 Eclipse menu Project-> Clean... 并清理项目,错误就会消失。

(我用 Eclipse Mars 证实了这一点)

如果只是 elcipse 需要它,那么创建 web.xml 是没有意义的,即使没有必要。如果像 spring-boot 那样嵌入 servlet 容器或者不使用 xml cfg,就会出现这种情况。 您只需在 Eclipse 中在项目级或全局上禁用 JavaEE (无用的东西)

Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK

这样做:

右键单击部署描述符,然后单击生成部署描述符存根。

您也可以这样做,这样就不那么冗长了

<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>

我有同样的问题,即使我有正确的 web.xml 'src/main/webapp/WEB-INF/'文件夹。

重新创建(maven-> eclipse)配置后,问题就消失了 我执行了 mvn eclipse:clean eclipse:eclipse

然后我使用 Maven -> Update Project添加(eclipse-> maven)插件的特定选项。

我只是在 eclipse 中遇到了这个问题,在 Maven 命令行中一切正常,而且我的 web.xml 文件已经存在。这是一个受到影响的成熟项目(已经部署到生产环境中)。我的问题和日食元数据有关。我的一份文件出了点问题。设置/文件夹,特别是 org.eclipse.wst.common.Component 已更改。我能够恢复这个文件到它的先前版本,这解决了我的情况下的问题。

注意,Yuci 的回答对我来说不起作用,当我试图点击 Eclipse 属性中的 Deployment Assembly 时,我得到一个错误,说“当前显示的页面包含无效值”

如果你使用 Spring 工具套件,生成部署描述符存根的选项会移动到 Java EE 工具下,所以你:

  1. 在您的 < strong > 项目上右击
  2. 选择 JavaEE 工具
  3. 选择 生成部署描述符存根选项

这将在 src/main/webapp/WEB-INF/文件夹中创建 web.xml 文件,当然也会从 Maven 的 pom.xml 文件中删除错误。

enter image description here

Eclipse 识别出不正确的默认 webapp目录。 因此我们应该用 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>

保存此设置后,如果删除该设置,则永远不会出现该错误。 (我无法解释原因。)

在 src/webapp 中创建 WEB-INF 文件夹,然后在 WEB-INF 文件夹中包含 web.xml 页面

- 网页/设定 & -admin/. 设置中删除文件

1

对于存在 web.xml 的 Project Project —— > Properties —— > Deployment Assembly,您可以在其中添加文件夹 src/main/webapp。 存零钱。 清理项目以便继续进行。

对于没有 web.xml 的 Project 在 properties 标记下将 pom.xml 中的 failOnMissingWebXml 设置为 false。

选择您的项目 然后选择“部署描述符”选项 然后选择“生成部署描述符存根”

右键单击该项目,转到 Maven-> 更新项目..。,然后检查 警队更新快照/新闻公报,然后单击 好的。完成!

步骤: 选择你的项目,选择“部署描述符”选项,然后选择“生成部署描述符存根”。问题在于,我们并不总是需要 web.xml,因此最好在 pom.xml 中附加 false

右键单击 project --> New --> Other --> Standard Deployment Descriptor(web.xml)

1

然后按 下一个它将创建 WEB-INF文件夹与 web.xml文件内。

2

就这么定了。

我的项目与战争无关,但同样的错误。我必须从 eclipse 中删除 project,从 project 文件夹中删除所有 eclipse 文件,并重新导入 maven 项目。

您需要将这些标记添加到 pom.xml 中

 <properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>

请在 POM.XML 中的结束标记 < strong > 之前添加以下 XML 代码

            <properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>

这应该可以解决丢失的 WEB.XML文件的错误。