web.xml 中的 true

2023-12-07

请有人帮助我,当我将异步支持的标记放入 web.xml 时,我收到此错误:

cvc-complex-type.2.4.a:发现以元素“async-supported”开头的无效内容。 '{" 之一http://java.sun.com/xml/ns/javaee“:运行方式,”http://java.sun.com/xml/ns/javaee预期为“:security-role-ref}”。

这是我的 web.xml

<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_2_5.xsd">
<servlet>
    <servlet-name>Jersey Web Application</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.yeditepeim.messenger.resources</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
   <async-supported>true</async-supported>
</servlet>
<servlet-mapping>
    <servlet-name>Jersey Web Application</servlet-name>
    <url-pattern>/webapi/*</url-pattern>
</servlet-mapping>

web.xml 采用 XML 模式。如果您不熟悉 XML 模式,它们描述了 XML 文档可以包含哪些元素和属性才能成为有效的instance该模式的。

话虽这么说,您可以在架构位置中看到正在使用的架构文件的版本,即...web-app_2_5.xsd。这意味着您的 web.xml 将基于该版本的架构,该版本映射到该版本的 servlet 规范,在您的情况下是2.5。这样做的问题是直到 3.0 版本才将 async 引入到 servlet 规范中。所以2.5模式中没有元素规范。因此,当验证 xml 时,它会说不是这样的元素<async-supported>在文档中是允许的,因为它不符合架构。

要修复它,只需将版本更改为 3.0,将架构文件更改为 3_0

         <!-- change to 3.0 -->
<web-app version="3.0" 
         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">
                                          <!-- change to 3_0 -->
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

web.xml 中的 true 的相关文章

随机推荐