Maven项目中出现Dynamic Web Module 3.0 requires Java 1.6 or newer

问题原因

Dynamic Web Module 3.0 requires Java 1.6 or newer问题的原因是Dynamic Web Module 3.0需要jdk1.6以上版本,而Maven默认的JDK版本是1.5以下的

Dynamic Web Module版本##

Dynamic Web Module的版本指的是servlet的版本

Dynamic Web Module和对应的TOMCAT版本:

dynamic web module 2.4 对应Tomcat 5.5
dynamic web module 2.5 对应Tomcat 6.0
dynamic web module 3.0 对应Tomcat 7.0

tomcat里边的servlet.jar对应版本:
这里写图片描述

不同版本Servlet web.xml 头信息##

Servlet 2.3

<?xml version="1.0" encoding="ISO-8859-1"?>  
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">    
<web-app>       
</web-app>  

Servlet 2.4

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

Servlet 2.5

<?xml version="1.0" encoding="UTF-8"?>      
<web-app 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" 
	    version="2.5">  
       
</web-app>  

Servlet 3.0

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

问题解决办法

1、修改maven的pom文件,修改maven默认的JRE版本,这是由于Maven默认的编译级别是 jdk1.5 或以下

<build>
   <finalName>SpringMVCMongoDB</finalName>
   <plugins>
       <!-- 修改maven默认的JRE编译版本,1.8代表JRE编译的版本,根据自己的安装版本选择1.7或1.8 -->
       <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
           <configuration>
               <source>1.8</source>
               <target>1.8</target>
           </configuration>
       </plugin>
   </plugins>
 </build>

2、将web.xml的头信息修改为Servlet的对应版本,这里修改为3.0的版本

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

3、修改project->properties->Project Facets中的Dynamic Web Module版本为3.0,Java版本为1.8

这里写图片描述

如果这里修改不了Dynamic Web Module版本可以尝试打开项目下的

.settings/org.eclipse.wst.common.project.facet.core.xml

修改为:

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <fixed facet="wst.jsdt.web"/>
  <installed facet="wst.jsdt.web" version="1.0"/>
  <installed facet="java" version="1.8"/>
  <!--Dynamic Web Module版本-->
  <installed facet="jst.web" version="3.0"/>
</faceted-project>

其他

也指定一个servlet版本,pom.xml加上:

<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.0.1</version>
</dependency>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值