JSF中的前缀URL映射导致FileNotFound错误

JSF中的前缀URL映射导致FileNotFound错误,jsf,web.xml,url-pattern,Jsf,Web.xml,Url Pattern,我是一名JSF初学者,尝试用Spring和Hibernate构建一个小型JSF2 Web应用程序。我选择的服务器是JBoss7.1AS 我在尝试用前缀URL模式映射servlet时遇到了一个奇怪的错误。这是web.xml中声明Servlet的部分: <servlet> <servlet-name>FacesServlet</servlet-name> <servlet-class>javax.faces.webapp.FacesSe

我是一名JSF初学者,尝试用Spring和Hibernate构建一个小型JSF2 Web应用程序。我选择的服务器是JBoss7.1AS

我在尝试用前缀URL模式映射servlet时遇到了一个奇怪的错误。这是web.xml中声明Servlet的部分:

<servlet>
    <servlet-name>FacesServlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>FacesServlet</servlet-name>
    <url-pattern>/webapplication/*</url-pattern>
</servlet-mapping>

小脸蛋
javax.faces.webapp.FacesServlet
小脸蛋
/网络应用/*
如果我现在将浏览器指向“localhost:8080/myapp/webapplication/index.xhtml”,我会得到一个mojara/Facelets生成的错误:“/index.xhtml未作为资源在ExternalContext中找到”。 如果我改为将URL模式配置为“*.xhtml”,则一切正常

我完全不知道前缀模式为什么不起作用:/


问候

我找到了解决方案:D

当使用前缀模式时,我认为我必须将我的xhtml文件放在一个同名文件夹中。 例如,我使用了“/webapplication/*”模式,因此我创建了一个文件夹“webapplication”,并将我的webfiles放在其中。现在,当我的浏览器指向 “{host}/myapp/webapplication/index.xhtml”我希望服务器在“{root}/webapplication/index.xhtml”中搜索文件。相反,Servlet将URL解析为 “{host}/myapp/index.xhtml”。因为文件没有放在那里,所以我得到一个FileNotFound错误


我还学会了不要给我的资源文件夹起与我的url模式相同的名字。

@Petr:如果他不这样做,他根本不会得到错误页面:)@BalusC:是的,没错。我今天真的很累:)我发现了另一件事:如果我使用一个欢迎文件“/wepapplication/index.xhtml”,然后将浏览器指向我的应用程序,会令人惊讶地显示一个结果。。。或者不是。我得到的不是FileNotFound错误,而是一个空页面。查看它的源代码,我可以看到它包含未编译的JSP代码。不过,只有在使用前缀模式时才会出现这种情况。