2012-05-07 7 views
0

私はJSFで新しくなっていますので、間違いではないと思わないでください。.jsfにアクセスするときに必要なリソース(jsp)は利用できません

Eclipse IndigoからJBoss 6.1にwebappをデプロイしています。静的なindex.htmlファイルが正常に機能するので、webappがサーバーにデプロイされていることを確認することができます(その変更はWebブラウザに反映されます)。

私はこれは非常に小さなロジック(実際には無地XHTMLである)、頁/ NewRequest.jsfでJSF2にfaceletを持っている:私はFaceServletであることを確認し(私のweb.xmlには、次のされ

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core"> 
<h:body> 
Hola mundo again.... 
</h:body> 
</html> 

構成された)

<?xml version="1.0"?> 
<web-app version="3.0" 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-app_3_0.xsd"> 
<display-name>GesMan</display-name> 
<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>*.jsf</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>*.faces</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>/faces/*</url-pattern> 
</servlet-mapping> 
<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>NewRequest.jsf</welcome-file> 
</welcome-file-list> 
</web-app> 

それはすべてが私のために合法的に見えますが、私はJSFにアクセスしようとすると私は同じ名前のJSPは私のJSPが存在しないということを私に語っ404エラーページを取得します。コンソールやserver.logファイルにエラーは表示されません

私は何が間違っているのか、もっと具体的なエラー情報を得る方法を教えてください。

答えて

1

実際のビューファイルのファイル拡張子は、JSFマッピング(例:.jsf)ではなく、使用されているビューテクノロジ(例:.xhtmlまたは.jsp)を表す必要があります。 ではなく、pages/NewRequest.xhtmlが必要です。

その他の問題は、ウェルカムファイルがマップされた(仮想)ファイル名を表すことができず、実際のファイル名を表す必要があることです。だからNewRequest.xhtmlが必要です。しかしこれには、正確にそのURLパターンにFacesServletをマップする必要があります。

ので、次のようにすべてを持つすべては、ちょうどweb.xmlを簡素化:

<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>*.xhtml</url-pattern> 
</servlet-mapping> 
<welcome-file-list> 
    <welcome-file>NewRequest.xhtml</welcome-file> 
</welcome-file-list> 

この方法であなたは仮想のURLをいじることなく、URLで.xhtmlを継続して使用することができます。

+0

これは.xhtmlの問題でした。私は(Eclipseで生成された)web.xmlファイルを見て、そのマッピングが私のようなファイル名を付けなければならないと考えていました(ウェルカムファイルの変更は単なる試行だった)。どうもありがとう。 – SJuan76

関連する問題