web工程程序没错,包上面显示错误
问题描述
新建的 web 工程,添加程序后,手动把 Web Module 改成了3.1,导致包上面显示错误,包下面的程序没有错误标记。
原因
查看 web.xml 文件才找到原因:
web.xml 中的 XML schema, namespace 和 web 版本不匹配,还是原来的 2.5 版本,3.1 版本的 XML schema, namespace 和2.5 版本有所区别。
问题解决
原来 web.xml 文件 schema, namespace:
<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_3_1.xsd">
改为3.1 版本的 schema, namespace:
<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_3_1.xsd"
version="3.1">
保存后,包上的错误标记消失。