JSF 2.0 Webプロジェクトがあり、Glassfish3.1.2サーバーを使用しています。このプロジェクトでは、私はとりわけ:
- @javax.servlet.annotation.WebServletでアノテーションが付けられたAjaxServletと呼ばれるクラス
- @javax.ejb.Statefulで注釈が付けられたSessionというクラス
このプロジェクトをEclipseからGlassfishにデプロイすると、すべてが完全に実行されます。Glassfishの管理コンソールでは、アプリケーションに関連付けられているエンジンは[ejb、jpa、web、weld]です。しかし、最初にプロジェクトを戦争としてエクスポートし、次に管理コンソールから戦争を展開すると、アプリケーションは機能しません。アプリケーションに関連付けられているエンジンは[Web]のみになります。
情報(すべてのエンジン)を失うことなく、アプリケーションを戦争にエクスポートするにはどうすればよいですか?JSF 2.0では、サーブレットを宣言する必要がないため、web.xmlでサーブレットを宣言しませんでした。アノテーションで十分です。ここで何が起こっているのか誰かが知っていますか?上記の2つのシナリオで同じGlassfishサーバーが使用されているため、Glassfishディストリビューション(Webプロファイルとフルプラットフォーム)の問題ではないと確信しています。
私の質問がトピックから外れていると誤って考えている人への注意:JsfはJavaEEWebアプリケーションをプログラミングするためのフレームワークです。warはJsfアプリケーションをパッケージ化する方法であり、jarはjavaクラスをパッケージ化する方法です。だから私の質問は完全にプログラミングのトピックです!ここStackOverflowでそれを持っていることは完全に合法です。JSFアプリケーションをwarにエクスポートすることがプログラミングの問題ではない場合、Javaクラスを.classにコンパイルすることもプログラミングのトピックではありません。したがって、Pleazeはこの理由でダウングレードしないでください!