【问题标题】:What does this web.xml error mean?这个 web.xml 错误是什么意思?
【发布时间】:2012-11-06 10:00:10
【问题描述】:
<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5" 
    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_5.xsd">

引用的文件包含错误 (http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd)。有关更多信息,请右键单击问题视图中的消息并选择“显示详细信息...”

通过文件“web.xml”验证文件“web-app_2_5.xsd”时检测到以下错误。在大多数情况下,可以通过直接验证“web-app_2_5.xsd”来检测这些错误。但是,只有在 web.xml 的上下文中验证 web-app_2_5.xsd 时才会发生错误。

详细来说,我看到了一堆这样的:

s4s-elt-character:除 xs:appinfo 和 xs:documentation 之外的架构元素中不允许使用非空白字符。看到'var _U="undefined";'

【问题讨论】:

标签: schema web.xml


【解决方案1】:

xsi:schemaLocation之间加分号,如下图

"http://java.sun.com/xml/ns/javaee;http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

这也解决了我在&lt;servlet-name&gt; 标记行中的这个错误。

“cvc-id.3:身份约束'web-common-servlet-name-uniqueness'的字段匹配元素'web-app',但该元素没有简单类型。”

【讨论】:

    【解决方案2】:

    如下替换 schemaLocation 为我解决了错误:

    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/j2ee; http://xmlns.jcp.org/xml/ns/j2ee/web-app_2_4.xsd"
    

    【讨论】:

      【解决方案3】:

      我建议你在两段之间添加;xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;

      像这样:

      :xsi:schemaLocation="http://java.sun.com/xml/ns/javaee;http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      

      【讨论】:

        【解决方案4】:

        在我的情况下,我已经替换了

        xsi:schemaLocation="http://java.sun.com/../.."

        xsi:schemaLocation="http://xmlns.jcp.org/../.."

        干杯!

        【讨论】:

          【解决方案5】:

          如果您将j2ee 替换为javaee,它将正常工作。

          编辑:

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

          编辑:

          进一步了解与此错误相关的任何信息。请关注Link。在这里您可以找到 Java EE 部署描述符 (web.xml) 的模式。

          【讨论】:

          【解决方案6】:

          替换

          xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd">
          

          xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee;http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd">
          

          解决办法是在网址之间加分号

          我相信你不会再收到错误了:)

          【讨论】:

          • 这样做的理由是什么?错误确实消失了,但我不知道会有什么副作用
          • 当我使用这个声明时,验证器说“找不到元素'web-app'的声明”
          • 在我的情况下添加分号(是 faces-config)后,错误(不是在我的 mac eclipse 上仅在我的 linux eclipse 中)消失了,但收到一条警告消息:没有语法约束(DTD 或XML Schema) 在文档中引用。
          【解决方案7】:

          从表面上看,schemaLocation 似乎是错误的。解决它似乎重定向到 HTML 页面而不是 XSD 架构。

          除非您真的想在运行时进行 XSD 验证,否则我建议您直接删除这一行。请记住,相关部分将由您的 servlet 容器验证。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-11-29
            • 2011-03-01
            • 2012-10-20
            • 2017-10-26
            相关资源
            最近更新 更多