2.1 版的 faces-config.xml xsd 错误

Posted

技术标签:

【中文标题】2.1 版的 faces-config.xml xsd 错误【英文标题】:faces-config.xml xsd error for version 2.1 【发布时间】:2012-09-14 20:11:15 【问题描述】:

Eclipse 一直告诉我 faces-config.xml 上的 http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd 有问题,还有其他人有问题吗?

 <?xml version="1.0" encoding="UTF-8"?>

 <faces-config 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-facesconfig_2_1.xsd"
          version="2.1">

 </faces-config>

错误是:

  Referenced file contains errors (http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd).  

如果我查看详细信息,会有大量以s4s-elt-character:..... 开头的错误

我正在使用 mojarra 2.1.13。

谢谢。

编辑:显然甲骨文改变了它,这修复了它:

http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-facesconfig_2_1.xsd

【问题讨论】:

如果您在使用 JSF 2.2 时遇到类似问题,同样的修复会有所帮助:oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/… 【参考方案1】:

我们正在努力解决这个问题。发现问题,努力解决。请跟踪此 JIRA 问题:http://java.net/jira/browse/GLASSFISH-19115

希望这对“错误”有所帮助。

更新:此问题已解决。

【讨论】:

链接已更改【参考方案2】:

正如 SJuan76 指出的那样,Oracle 在http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd 处缺少 2.1 faces-config XSD 存在问题

不过,http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd 上的 2.0 XSD 还可以

错误可能是由于响应不正确(根本不是 XSD)。

解决方法是使用来自不同来源的相同 XSD(替换 xsi:schemaLocation 中的第二个地址),例如: https://svn.java.net/svn/mojarra~svn/tags/2.1.13/jsf-api/doc/web-facesconfig_2_1.xsd

警告:这只是一个临时的解决方法,一点都不好。必须有人先在 Oracle 上看看这个,然后把 2.1 XSD 放回 java.sun.com 地址。

【讨论】:

好吧,除了 Eclipse 抱怨之外,http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd 失败似乎没有任何影响。希望甲骨文能解决这个问题。 显然这解决了它http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-facesconfig_2_1.xsd【参考方案3】:

在浏览器中输入网址:

 http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd

Oracle 正在返回一个软 404,而 Eclipse(或任何人)无法将其解析为 xsd。

我敢打赌,网址有误,但我脑子里没有正确的...

更新:对于 2.0,它是 http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd(浏览返回 .xsd);我找到了您在网络上任何地方发布的 URL,但在 oracle 中没有...您确定您的类路径中有 2.1 库吗?

【讨论】:

这是我创建项目时eclipse放的urlhttp://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd 修复http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-facesconfig_2_1.xsd【参考方案4】:

当我创建一个具有 JSF 2.1 配置的动态 Web 项目时,我也有同样的错误 faces-config 有这个错误,所以我必须使用 JSF 2.0 配置创建 web 项目。

【讨论】:

2.1有什么好处吗? 试试http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-facesconfig_2_1.xsd【参考方案5】:

我也有同样的烦恼。为了解决这个问题,我只是创建了一个 新的“动态项目” 并在项目方面(项目/属性/项目方面) 我标记了选项“JavaServer Faces”version 2.1。 之后,您将看到消息:“需要进一步配置...”(如下) 单击此消息并选择包含您的 javax.faces-2.1.x.jar 的库。 点击“确定” 和“申请”。 eclipse 创建包含正确描述的 faces-config.xml 文件。

在我的项目中生成以下配置:

<faces-config
    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-facesconfig_2_1.xsd"
    version="2.1">

</faces-config>

【讨论】:

以上是关于2.1 版的 faces-config.xml xsd 错误的主要内容,如果未能解决你的问题,请参考以下文章

JSF 2 中 faces-config.xml 的用途是啥?

文件无法验证为XML定义,如何修复faces-config.xml警告?

在 JSF、Spring、Spring-Security 项目中是不是需要 faces-config.xml? [复制]

无法在 JSF 应用程序中解析文档 faces-config.xml

如何使用指定版本2.3的JSF Facet创建Eclipse动态Web项目?

JSF 面对 WEB-INF 之外的配置文件?