繁体   English   中英

错误:在ExternalContext中找不到/login.xhtml作为资源

[英]Error: /login.xhtml Not Found in ExternalContext as a Resource

我正在使用JBoss 7.1和JSF 2.1 / Prime Faces并继续遇到标题中列出的错误。 我已经尝试了很多这里提出的建议,但最终都出现了同样的错误。

文件结构是:

WEB-INF
   faces
      login.xhtml

我在web.xml中有以下内容:

<display-name>clientAccountManager</display-name>
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<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>

我正在使用以下URL访问该文件:

http://localhost:8080/clientAccountManager/faces/login.xhtml

我还将URL模式更改为* .xhtml并使用:

http://localhost:8080/clientAccountManager/login.xhtml

结果相同。

我错过了什么?

你犯了2个错误。

  1. /WEB-INF文件夹用于配置文件,包含文件,模板文件,标记文件等,它们应该被隐藏而不能直接访问,而不能用于公共可访问的文件。 将可公开访问的文件放在/WEB-INF文件夹之外。

  2. /faces文件夹根本不应该使用。 FacesServlet上的虚拟/faces/* URL模式并不意味着您应该拥有这样的物理文件夹。 去掉它。

所有,只有

WebContent
 |-- META-INF
 |-- WEB-INF
 |    |-- faces-config.xml
 |    `-- web.xml
 `-- login.xhtml

<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

http://localhost:8080/clientAccountManager/login.xhtml

应该做。

也可以看看:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM