2

GlassFishでNetbeansを使用してローカルマシンで動作するサンプルアプリケーションがあります。StackOverflowを起動して実行することで多くの助けを受けました。次のステップは、実サーバーにデプロイしてみることです。EATJで試すことができることがわかったので、Netbeansを使用してWARファイルを生成し、WARファイルをアップロードしました。動作せず、ログの1つで次のことがわかりました

INFO: ContextListener: contextDestroyed()
Jun 12, 2012 10:45:33 PM org.apache.catalina.core.ApplicationContext log
INFO: Marking servlet Faces Servlet as unavailable
Jun 12, 2012 10:45:33 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /ww1 threw load() exception
java.lang.ClassNotFoundException: javax.faces.webapp.FacesServlet
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701)

クリーンな状態になるように、Tomcatサーバーを再起動しました。タイムスタンプから、同期していることがわかります。INFOでは、Facesサーブレットが使用できなくなっていることを示しています。したがって、クラスを使用できなくなっただけでクラスが見つからないことは驚くことではありません。したがって、アプリケーションを実行しようとすると失敗します。

私が理解できないのは、そもそもなぜそれを利用できないようにすることにしたのか、そして私がそれに対して何ができるのかということです。

ローカルマシンのNetbeansではGlassFishを使用しており、EATJではTomcatを使用しています。Tomcatで実行できなくなる可能性のある何かがWARファイルに組み込まれていますか?信じがたいですが、多分。違いが生じる場合は、primefacesでjsf2.0を使用しています。

GlassFishがNetbeansにバンドルされており、問題なく動作して以来、ローカルマシンでTomcatを実行したことはありません。たぶん私はそれをテストするために私のローカルマシンにTomcatをロードする必要がありますか?どう考えたらいいのかわからないので、アドバイスが必要です。

PS迷惑な警告を削除するためにglassfish-web.xmlを追加したことを覚えています。私が追加した行は

<parameter-encoding default-charset="UTF-8"/>

おそらく、glassfish-web.xmlを削除する必要がありますか?一方、FacesServletを使用不可にすることとは何の関係がありますか?問題はそれよりも深いようです。

4

1 に答える 1

8

Glassfishにはjsfライブラリがバンドルされています。Tomcatはそうではありません。したがって、プロジェクトをビルドするときに、jsflibをtomcatlibに配置するか、warファイルに追加する必要があります。ここから
jsfをダウンロードできます。

于 2012-06-13T09:00:46.110 に答える