2011-03-11 4 views
0

Richfaces 3.3.3とGlassfishを使用してアプリケーションを開発しています。それは大丈夫です。今私はそれをTomcat 6/7に移植するための呼び出しを得ました。 NetBeans 6.9.1でランタイムサーバーを変更してアプリケーションを実行すると、評価された値にもかかわらず、#{UserBean.userName}などの類似した式が表示されます。私はすべての瓶の組み合わせで試してみましたが、まだ分かりませんでした。助けてください。Tomcatで動作しているときにjsfページの#{UserBean.userName}が表示されますが、Glassfishで正常に動作します。

答えて

0

facesサーブレットのサーブレットマッピングが正しく動作していないようです。たぶんweb.xmlを変更する必要があります。しかし、限り、私は顔のサーブレットの設定を知ってGlassfishとTomcatで同じです。

もう1つの理由は、tomcatサーバーがjsf jarファイルにアクセスできない可能性があるからです。

ルックherehere

+0

私は非常に誠実にjsf 2、jsf-2impland、クラスパス内の他の3つの豊かなものすべてを含んでいます。 –

+0

tomcatログファイルに関連するものは何ですか? –

0

私は、そうでなければ、ウェブブラウザでページ内EL平野を見ていないので、FacesServlet部分は結構です、JSFタグが正常に動作することを仮定します。そうでなければグラスフィッシュで働いたことも変わってしまいました。 JSF JARが見つからない場合、HTTP 500エラーのみが発生し、FacesServletがロードされている間にクラスパスにJSFライブラリが存在しないと不平を言って例外が発生します。

JSFのELは機能しません。これは、JSF ELファクトリが見つからない場合に発生します。これは、 "custom" JSF ELファクトリをweb.xmlに宣言しても、そのファクトリがwebappのクラスパスに存在しない場合に発生します。 Glassfishで動作するということは、あなたのweb.xmlに次のようなことがあることを意味します。

<context-param> 
    <param-name>com.sun.faces.expressionFactory</param-name> 
    <param-value>com.sun.el.ExpressionFactoryImpl</param-value> 
</context-param> 

これを取り除く。 Tomcatには、Glassfish固有のEL実装が付属していません。 TomcatはすでにGlassfishと同じように動作するはずの独自のEL実装を備えています。

しかし、サーバーの起動ログではこれについてのヒントが既に得られています。

+0

いいえ、私は明示的に表現ファクトリを宣言していません。そして驚いたことに、Tomcat 7.0.6をダウンロードして再構築しました。私はすべてのインクルード、フォワード、リクエスト、およびレスポンスに対してajax4jsfフィルタを設定リスナとともにweb.xmlファイルに明示的に設定しました。 –

関連する問題