Gradle を使用して小さな Web アプリを作成しました。組み込みの Jetty サーバーを使用するとうまくいっているように見えましたが、WAR ファイルをスタンドアロン サーバーにコピーしようとすると、うまくいきませんでした。
gradle war プラグインを使用して戦争を組み立てました。
gradle jettyRunWar を実行すると正常に動作します。
war を Jetty webapps フォルダーにコピーして Jetty を実行すると、次の例外で失敗します。
java.lang.IllegalStateException: No such servlet servlet_name
しかし、これとまったく同じサーブレットが、組み込みの Jetty サーバーで問題なく検出され、使用されます。
展開された戦争を webapps ディレクトリに手動でコピーすると、同じ問題が発生します。
Spring Web および Spring mvc ライブラリはコピーされて WEB-INF/libs ディレクトリに存在するため、Spring が見つからないという問題はありません (またはそうですか?)。
Jetty 9.1 を使用しており、web.xml ファイルはサーブレット v3 用に構成されています。
Spring 3.2も使用しています。私が書いている Web アプリは、@Controller アノテーションを使用してリクエストをルーティングする RESTful サービスです。
これは、戦争をコピーするのと同じくらい簡単なはずですが、そうではないようです. ここで何をすべきか少し迷っていますが、何か考えはありますか?
ありがとう!