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

亡梦爱人 提交于 2019-12-04 11:26:45

问题


I'm using JBoss 7.1 with JSF 2.1/Prime Faces and keep running into the error listed in the title. I've tried many of the suggestions made here and all end up with the same error.

File structure is:

WEB-INF
   faces
      login.xhtml

I have the following in 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>

I am accessing the file currently using the following URL:

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

I have also changed the URL pattern to *.xhtml and used:

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

with the same result.

What am I missing?


回答1:


You made 2 mistakes.

  1. /WEB-INF folder is for configuration files, include files, template files, tag files, etc, which are supposed to be hidden from direct access, not for publicly accessible files. Put publicly accessible files outside /WEB-INF folder.

  2. /faces folder should not be used at all. A virtual /faces/* URL pattern on FacesServlet doesn't imply that you should have a physical folder like that. Remove it.

So, all with all, just

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

and

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

and

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

should do.

See also:

  • Which XHTML files do I need to put in /WEB-INF and which not?


来源:https://stackoverflow.com/questions/13148624/error-login-xhtml-not-found-in-externalcontext-as-a-resource

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!