web-dev-qa-db-ja.com

エラー:/login.xhtmlがリソースとしてExternalContextに見つかりません

JSF 2.1/Prime FacesでJBoss 7.1を使用していますが、タイトルにリストされているエラーが発生し続けます。ここで行った提案の多くを試したところ、すべて同じエラーが発生しました。

ファイル構造は次のとおりです。

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

同じ結果。

何が欠けていますか?

10
Chris K.

あなたは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

すべきです.

以下も参照してください。

41
BalusC