gpt4 book ai didi

java - 无法在 Java 中解析 web.xml 文件

转载 作者:行者123 更新时间:2023-11-28 22:39:27 25 4
gpt4 key购买 nike

我正在尝试使用 org.apache.tomcat.util.descriptor.web.WebXmlParser 解析 Java 中的 web.xml 文件,但我不明白。

程序非常简单:

public WebXml read() {
WebXml webXml = new WebXml();

WebXmlParser parser = new WebXmlParser(false, true, true);

try (InputStream is = Reader.class.getResourceAsStream("/web.xml")) {
boolean success = parser.parseWebXml(new InputSource(is), webXml, false);
if (!success) {
throw new IllegalStateException("Error parsing");
}
} catch (IOException e) {
throw new IllegalStateException("Error reading", e);
}

return webXml;
}

web.xml 位于项目的根目录中,并且定义了一个 servlet:

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

<servlet>
<servlet-name>demoServlet</servlet-name>
<servlet-class>com.demo.DemoServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>demoServlet</servlet-name>
<url-pattern>/demo</url-pattern>
</servlet-mapping>

</web-app>

当我尝试使用上面的代码片段解析 web.xml 时,出现以下错误:

SEVERE: Parse Error at line 4 column 24: cvc-elt.1: Cannot find the declaration of element 'web-app'.
org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 24; cvc-elt.1: Cannot find the declaration of element 'web-app'.

我不明白这个错误,因为恕我直言,web.xml 编写正确。

我准备了一个示例项目来显示错误:https://github.com/itelleria/webxml-parser

对于此错误,我将不胜感激。

提前致谢。

最佳答案

对我来说,它在禁用验证的情况下工作

WebXmlParser parser = new WebXmlParser(false, false, true);

关于java - 无法在 Java 中解析 web.xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51541631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com