0

eatj.comを使用して最初のJSFサイトをデプロイしました。

Glassfishを使用してNetBeansでアプリケーションをテストしましたが、JSFタグのあるサイトはローカルホストで正常に動作します。

プロジェクトファイルをftpでTomcatサーバーのwebappsdirectorフォルダーにアップロードしました。

jsp-api.jarファイルは、Tomcatサーバーの/libファイルにあります。

サーバーを再起動して/webapps/myproject/web/index.xhtmlに移動すると、ページは読み込まれますが、jsfタグが表示されません。

jarライブラリを/webapps/ myproject / web / WEB-INF / lib /にコピーしようとしましたが、変更はありません。

おそらくそれは私のホームページが.jsfではなく.xhtmlであるという事実と関係がありますか?しかし、それが私のローカルホストで機能するなら、それはこのサーバーで機能すると思いましたか?

実行中のJSFページの例があるので、サーバーはJSFをサポートしていると確信しています。

どんな助けでも大歓迎です。

ありがとう

編集:

以下は私の現在のweb.xmlファイルです

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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_2_5.xsd">

<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
</context-param>
<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>
<session-config>
    <session-timeout>
        30
    </session-timeout>
</session-config>
<welcome-file-list>
    <welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>

編集:

以下は、サーバー起動用のcatalina.outファイルからの貼り付けです。

INFO: Server startup in 1594 ms
May 7, 2012 1:09:50 PM org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1 on http-6713
May 7, 2012 1:09:51 PM org.apache.catalina.core.StandardService stop
INFO: Stopping service Catalina
May 7, 2012 1:09:51 PM org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-6713
May 7, 2012 1:09:57 PM org.apache.catalina.core.AprLifecycleListener init
INFO: 
May 7, 2012 1:09:57 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-6713
May 7, 2012 1:09:57 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1017 ms
May 7, 2012 1:09:57 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
May 7, 2012 1:09:57 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.14
May 7, 2012 1:09:59 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-6713
May 7, 2012 1:09:59 PM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:4713
May 7, 2012 1:09:59 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/62  config=null
May 7, 2012 1:09:59 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1580 ms
4

1 に答える 1

0

<url-pattern>JSFタグは、リクエストURLがののと一致する場合にのみ処理さFacesServletweb.xmlます。あなたはそれをにマッピングしたようです*.jsfが、<welcome-file>のはそれにindex.xhtml一致しません。2つのオプションがあります:

  • の代わりFacesServletにのにマップします。このようにして、仮想URLをいじる必要はありません。<url-pattern>*.xhtml*.jsf

  • ルートフォルダの横にある空のファイルに変更<welcome-file>して作成し、実際に存在するサーバーをだまして、404エラーを防ぎます。index.jsfindex.jsfindex.xhtml

ちなみに、jsp-api.jarTomcatにファイルがあることの確認/libは、この問題とは無関係です。まず、これはTomcatの標準部分であり、次に、Faceletsを使用しているときにはまったく使用されません。

Last but not least, make sure that you ship a concrete JSF implementation along with your webapp in its /WEB-INF/lib folder. Tomcat does as being a simple JSP/Servlet container namely not ship with JSF bundled, while Glassfish as being a full fledged Java EE application server does. If you don't have any one, download and drop the javax.faces.jar file in /WEB-INF/lib folder of your webapp before deploying to Tomcat. Also make sure that your web.xml is declared conform Servlet 2.5, because Tomcat 6 is a rather old version which doesn't support Servlet 3.0 like as Glassfish 3.

于 2012-05-07T14:32:06.923 に答える