1、问题

创建maven war 工程后,eclipse 中的 pom.xml 报错 web.xml is missing and <failOnMissingWebXml> ,所下图所示:

在这里插入图片描述

2、原因:

创建maven 创建的 war 工程没有 web.xml 文件。

从 servlet3.0开始,在servlet 项目中 ,Servlet、Filter、Listener无需在web.xml中进行配置,可以通过对应注解进行配置, web.xml 可以不存在;

参考: Servlet3.0新特性全解
从 tomcat7 开始支持 servlet3.0 。

3、解决方法:

3.1、方法1:

创建 web.xml 文件,xml 内容如下:

servlet 2.5 :

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  
</web-app>

servlet 3.0:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
		xmlns="http://java.sun.com/xml/ns/javaee" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
		http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" >	

	<welcome-file-list>	
		<welcome-file>index.html</welcome-file>
	</welcome-file-list>
	
</web-app>

3.2、方法2:

如果项目中确实不需要web.xml 文件时,可以使用此方法。

将光标放在 行首,快捷键 Alt + / , 选择 Insert plugin
在这里插入图片描述

输入 war , 列表中会出现maven-war-plugin 插件,选中添加:
在这里插入图片描述
添加 maven-war-plugin 后,如下:
在这里插入图片描述

再对 maven-war-plugin 添加配置,如下:

<build>
  	<plugins>
  		<plugin>
  			<groupId>org.apache.maven.plugins</groupId>
  			<artifactId>maven-war-plugin</artifactId>
  			<version>2.4</version>
  			<configuration>
  				<failOnMissingWebXml>false</failOnMissingWebXml>
  			</configuration>
  		</plugin>  		
  	</plugins>
</build>

如果报错不消失,可以选中项目,右键 --> Maven --> Update Project,如下图所示:
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐