1 回答
TA贡献1797条经验 获得超6个赞
堆栈跟踪之前的长错误消息(为了清晰起见重新格式化)解释了该问题:
java.io.IOException: org.xml.sax.SAXParseException
publicId:
file:/home/vladimir/Downloads/glassfish-5.0/glassfish5/glassfish/lib/schemas/web-app_4_0.xsd;
lineNumber: 8; columnNumber: 27;
Deployment descriptor file in archive [web_war_exploded].
TargetNamespace.1:
Expecting namespace
'http://java.sun.com/xml/ns/javaee'
, but the target namespace of the schema document is
'http://xmlns.jcp.org/xml/ns/javaee'.
因此,Glassfish 架构定义 ( web-app_4_0.xsd ) 中指定的命名空间与您在应用程序的部署描述符 ( WEB-INF/web.xml ) 中提供的命名空间不匹配。
这是 Glassfish 的web-app_4_0.xsd的顶级内容:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:javaee="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
version="4.0">
...
</xsd:schema>
targetNamespace
请注意,为和指定的值xmlns:javaee
是您应该在应用程序的web.xml"http://xmlns.jcp.org/xml/ns/javaee"
中指定的值,而不是。修理:"http://java.sun.com/xml/ns/javaee"
停止玻璃鱼
在应用程序的web.xml中,将所有出现的 替换
http://java.sun.com/xml/ns/javaee
为http://xmlns.jcp.org/xml/ns/javaee
。清理、构建和重新部署您的应用程序。
重新启动 Glassfish 服务器。
添加回答
举报