0

我目前将 prettyfaces-jsf2-3.3.3.jar 添加到我的 netbeans 项目中。我还使用以下测试重写规则在 WEB-INF 文件夹中添加了 pretty-config.xml:

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


<url-mapping id="viewRecipe"> 
    <pattern value="/#{ RecipeBean.filterRecipeName }/" />
    <view-id value="/faces/viewRecipe.jsf" />
</url-mapping>

使用此配置的 url

http://localhost:8080/wie-koche-ich/Spaetzle
//wie-koche-ich is the name of the netbeans project

应该参考 viewRecipe.jsf 页面并将 filterName 设置为 Spaetzle。但是当我输入 URL 时,glassfish 4.0 服务器返回 404 页面,并且日志显示“在 Web 上下文中找不到 Faces Servlet (javax.faces.webapp.FacesServlet) - 无法配置 PrettyFaces DynaView”。

究竟是什么引发了这个异常,我该如何解决这个问题?

似乎没有加载 pretty-config.xml 。

4

1 回答 1

2

这基本上意味着,PrettyFaces 无法找到FacesServlet. 看:

https://github.com/ocpsoft/prettyfaces/blob/3.3.3/core/src/main/java/com/ocpsoft/pretty/faces/config/servlet/WebXmlParser.java#L73

您是否手动定义了中的FacesServlet映射web.xml?如果没有,您可以尝试添加它。或者您也许可以尝试调试这个类以找出发生了什么。实际上这个类应该(在 Servlet 3.x 的情况下)环境,遍历所有 servlet 注册并找到 servlet。

于 2013-10-23T16:54:58.517 回答