【问题标题】:Prettyfaces, it's not been resolved?漂亮脸蛋,还没解决?
【发布时间】:2013-05-09 10:05:49
【问题描述】:

我正在尝试构建自定义 URL,因为 prettyfaces 告诉它这样做,但是在设置之后,它给了我这个错误:

Referenced file contains errors (http://ocpsoft.org/xml/ns/prettyfaces/ocpsoft-pretty-faces-3.3.3.xsd). For more information, right click on the message in the Problems View and select "Show Details..."

这就是我的web.xml 设置方式:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>BRAINSET</display-name>
  <context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
  </context-param>
  <context-param>
    <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
    <param-value>true</param-value>
  </context-param>
  <welcome-file-list>
    <welcome-file>index.xhtml</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>
  <filter>
      <filter-name>Pretty Filter</filter-name>
      <filter-class>com.ocpsoft.pretty.PrettyFilter</filter-class>
      <async-supported>true</async-supported>
   </filter>

   <filter-mapping> 
      <filter-name>Pretty Filter</filter-name> 
      <url-pattern>/*</url-pattern> 
      <dispatcher>FORWARD</dispatcher> 
      <dispatcher>REQUEST</dispatcher> 
      <dispatcher>ERROR</dispatcher>
      <dispatcher>ASYNC</dispatcher>
   </filter-mapping>
</web-app>

还有我的pretty-config.xml

<pretty-config xmlns="http://ocpsoft.org/prettyfaces/3.3.3" 
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
               xsi:schemaLocation="http://ocpsoft.org/prettyfaces/3.3.3
               http://ocpsoft.org/xml/ns/prettyfaces/ocpsoft-pretty-faces-3.3.3.xsd">

    <url-mapping id="home">
        <pattern value="/home" />
        <view-id value="/index.xhtml" />
    </url-mapping>

由于这个错误,我什至无法在Glassfish 中部署我的应用程序:

Could not publish to the server.
java.lang.NullPointerException

知道如何解决这个问题吗?或者我应该寻找另一个类似于prettyfaces 的工具?

更新

【问题讨论】:

    标签: java jsf jsf-2 glassfish prettyfaces


    【解决方案1】:

    我不认为这个错误是由 PrettyFaces 引起的。 XML 模式在我的 Eclipse 设置中运行良好,我没有收到任何这些错误。而且我很确定 XSD 文件是有效的。

    您应该查看 Eclipse 日志文件 (WORKSPACE/.metadata/.log) 以查看是否有任何异常抛出。

    顺便说一句:您也可以尝试从 pretty-config.xml 中删除 schemaLocation 元素并检查这是否有帮助。 PrettyFaces 在解析文件时不使用 XSD 架构。像这样的:

    <pretty-config xmlns="http://ocpsoft.org/prettyfaces/3.3.3">
      ...
    </pretty-config>
    

    【讨论】:

    • 非常感谢!你是对的!一件奇怪的事情很难,在漂亮的脸[1]网站上说要与XSD一起使用,这就是我使用它的原因。好吧,它似乎没有在最后。再次感谢朋友。 [1]ocpsoft.org/prettyfaces
    • 使用模式只是为了在 IDE 中编辑 XML 时自动完成。据我所知,它是有效的,但这对我来说听起来像是 Glassfish 错误。
    • @Lincoln 在下面看到我的回答,我知道 XSD 出了什么问题
    • 嘿@JonathanS.Fisher - 谢谢!我更新了 XSD,让我知道这是否更好?
    【解决方案2】:

    终于想通了....所以这个 XSD 无效的原因是因为文档有这个:

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

    代替:

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

    如果有人知道如何让林肯来解决这个问题,那就太好了!

    【讨论】:

    • 糟糕。我的意思是那篇文章在这里发表评论。在手机上:这样更好吗?我删除了空间:)
    • @Lincoln 当我访问这个页面时,它仍然显示空间:ocpsoft.org/xml/ns/prettyfaces/rewrite-config-prettyfaces.xsd
    • 嘎。好的,现在试试?
    • 是的!杰出的先生
    • 太棒了:D哇!很好地发现了这个超级奇怪的显然不符合标准的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 2020-11-21
    • 2019-11-10
    • 2013-03-21
    • 1970-01-01
    相关资源
    最近更新 更多