0

このチュートリアルとして新しいプロジェクトを作成しました JSF Tools tutorial - Build a JSF 2.0 application

m.xhtmlを右クリックしてサーバーで実行を選択して実行しようとすると、 で 404 エラーが発生しましたm.jsp

ブラウザのアドレス バーの URL は :http://localhost:8080/Marwa/m.jsf です。

エラー メッセージにはHTTP Status 404 - /Marwa/m.jspと表示されます

これはどのように発生し、どうすれば解決できますか?

これが私のものweb.xmlです:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
 <display-name>Marwa</display-name>
  <welcome-file-list>
    <welcome-file>m.xhtml</welcome-file>

  </welcome-file-list>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
  <context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>resources.application</param-value>
  </context-param>
  <context-param>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
  </context-param>
  <context-param>
    <param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
    <param-value>true</param-value>
  </context-param>
  <context-param>
    <param-name>org.apache.myfaces.PRETTY_HTML</param-name>
    <param-value>true</param-value>
  </context-param>
  <context-param>
   <param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
   <param-value>false</param-value>
  </context-param>
  <context-param>
   <param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
   <param-value>true</param-value>
  </context-param>

</web-app>
4

1 に答える 1

2

Facelets ファイルではなく、JSP ファイルを探しています。

JSP は、古い JSF 1.x のデフォルトのビュー テクノロジでした。したがって、この問題は、実際に JSF 1.x を使用しているか、JSF 1.x モードで JSF 2.x を実行していることを示唆しています。

本当に JSF 2.x ライブラリがあることを確認してください。サーバーの起動ログを読み取るか、zip ツールを使用して JSF JAR ファイルを抽出し、MANIFEST ファイルを読み取ることで、正確な JSF バージョンを確認できます。http://myfaces.apache.org/download.html (または別の実装の場合はhttp://javaserverfaces.java.net/ )で適切なバージョンを再ダウンロードすることもできます。2.x バージョンを取得していることを確認してください。

また、faces-config.xmlJSF 2.x 仕様バージョンに準拠していると宣言されていることを確認してください。次のようになります。

<?xml version="1.0" encoding="UTF-8"?>

<faces-config
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
    version="2.0">

    <!-- Config here -->

</faces-config>

Eclipse がこれをすべて自動的に実行しなかった場合は、古いバージョンの Eclipse を使用しているようです。ビルトイン JSF2 サポートは、Java EE の Eclipse Helios (3.6) で初めて導入されました。http://www.eclipse.org/downloads/で最新バージョンを入手できます。これは現在 Indigo SR2 (3.7.2) です。

于 2012-05-24T03:35:34.783 に答える