问题描述
在新建的 web 项目中,tomcat 启动的时候控制台出现了
Unknown version string[4.0] . Default version will be used.
警告。经过查略资料发现是 web 版本跟 tomcat 版本不匹配导致的。我项目中的 web 版本是 4.0,tomcat 版本是 8.5。
版本对应关系
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
公众号
可以关注我的公众号,不定时更新工作中踩到的坑及一些思考总结