web.xml文件丢失且设置为true。

8 浏览
0 Comments

web.xml文件丢失且设置为true。

考虑以下问题:\n在Eclipse中创建一个简单的Maven项目时,我遇到了这个错误:\n

\nweb.xml文件丢失,并且设置为\n true\n

\n我该如何解决这个问题?

0
0 Comments

问题的出现原因是web.xml文件缺失,解决方法是将/src/main/webapp文件夹添加到项目源中,然后进行项目清理。

如果您在/src/main/webapp/WEB-INF文件夹下已经有web.xml文件但仍然出现错误"web.xml is missing and is set to true",您可以检查是否已经将/src/main/webapp文件夹包含在项目源中。

以下是解决方法的步骤:

  1. 右键单击项目,打开属性对话框,选择"Deployment Assembly",在其中添加文件夹/src/main/webapp。保存设置,然后
  2. 在Eclipse菜单中选择项目 -> 清理... 并清理项目,错误应该会消失。

(我在Eclipse Mars中验证了这个解决方法)

在"Eclipse Mars"下遇到了相同的问题,您提供的解决方案完美解决!谢谢!

对我不起作用...我已经有了这些文件夹,我甚至尝试将web.xml missing设置为false,但它不起作用...

0
0 Comments

问题原因:在项目中缺少web.xml文件,同时设置为true,所以会出现该错误。

解决方法:可以通过以下步骤解决该问题:

1. 在“Project Explorer”中右键点击“Deployment Descriptor”。

2. 选择“Generate Deployment Descriptor Stub”。

3. 这将在“src/main/webapp”中生成“WEB-INF”文件夹,并在其中生成一个“web.xml”文件。

此外,不建议为了解决构建工具的错误而在代码中添加模板代码。可以尝试以下解决方法:

1. 了解上述方法的潜在问题和可能带来的影响。

2. 寻找其他解决方法,以避免生成不必要的web.xml文件。

3. 可以尝试修复构建工具(例如maven)中的问题,而不是通过上述方法来解决。

同时,可以参考链接(eggsylife.co.uk/2009/12/20/…)了解更多关于该问题的信息。另外,如果想要消除该错误,可以强制更新maven即可。

0
0 Comments

这是一个Maven错误。它表示在您的项目中需要一个web.xml文件,因为它是一个Web应用程序,如<packaging>war</packaging>所示。然而,对于最新的Web应用程序,web.xml文件是可选的。Maven需要遵循这个约定。

将以下内容添加到您的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文件更好,因为这样您的最终产品会保持干净,只是改变了构建参数。

对于更高版本的Maven,您也可以使用更短的版本:

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

这个解答更加合理。

添加一个缺失的步骤:您需要右键单击项目 -> Maven -> 更新项目,使这个配置生效。

如果您正在使用Servlet 3.0+环境,并且有一个Interface WebApplicationInitializer的任何实现,那么这个答案是正确的方法。这是解决这个问题的明智方法 - 在不使用web.xml的情况下添加它是没有意义的!

这个答案比其他答案更合理。

这比创建一个空的web.xml更好。

即使没有 Maven > Update Project 也可以工作。所以不需要它。

请考虑更新您的答案,使用更短的配置,如下所示。包括<properties><failOnMissingWebXml>false</failOnMissingWebXml></properties>就足够了,而不是更冗长的插件配置设置。

谢谢。我更新了答案,但这只适用于更高版本的Maven。第一种解决方案将始终有效。

我发现Maven文档说maven-war-plugin的failOnMissingWebXml的默认值是false,那么为什么我们需要显式地将其设置为false?maven.apache.org/plugins/maven-war-plugin/war-mojo.html

根据文档,这个默认值是:Starting with 3.1.0, this property defaults to false if the project depends on the Servlet 3.0 API or newer.所以对于3.1.0之前的版本,您需要显式地将其设置为false。

<failOnMissingWebXml>false</failOnMissingWebXml>帮助了我

从插件的v3.1.0开始,如果项目依赖于Servlet 3.0 API或更高版本,则该属性的默认值为false(参见maven.apache.org/plugins/maven-war-plugin/…)。

0