Tomcat 警告:Unknown version string [4.0] . Default version will be used.

  • Post author:
  • Post category:其他


问题描述

在新建的 web 项目中,tomcat 启动的时候控制台出现了

Unknown version string[4.0] . Default version will be used.

警告。经过查略资料发现是 web 版本跟 tomcat 版本不匹配导致的。我项目中的 web 版本是 4.0,tomcat 版本是 8.5。

版本对应关系

web、jdk、tomcat版本对应关系
web 版本 jdk 版本 tomcat 版本
version 2.2 jdk 1.1 tomcat 3.3
version 2.3 jdk 1.3 tomcat 4.1
version 2.4 jdk 1.4 tomcat 5.5
version 2.5 jdk 1.5 tomcat 6.0
version 3.0 jdk 1.6 tomcat 7.0
version 3.1 jdk 1.7 tomcat 8.0 或 tomcat 8.5
version 4.0 jdk 1.8 tomcat 9.0

web.xml 不同版本头

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

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

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

version 3.0

<?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_3_0.xsd"
         version="3.0">
</web-app>

version 4.0

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
</web-app>

解决方法

知道了报错的原因是由于版本不对应导致的。那么只需要把版本三个版本改为一致的就可以了。如果是修改 web 版本的话,只需要把 web.xml 中的版本头替换成对应的版本头即可。

参考:

https://blog.csdn.net/flyingshadower/article/details/81771955

公众号

可以关注我的公众号,不定时更新工作中踩到的坑及一些思考总结