2

JBoss AS 7.1.1 で Spring Petclinic の例を実行しようとしています。https://github.com/SpringSource/spring-petclinic/からMaven プロジェクトを Eclipse Juno にインポートして正常にデプロイしましたが、http://localhost:8080/petclinic/HTTP ステータス 404 エラーが発生します。ログから確認できる唯一の問題は

JBAS011006: 例外のため、オプションのコンポーネント org.springframework.web.context.request.async.StandardServletAsyncWebRequest をインストールしていません: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS011054: クラス org.springframework.web のデフォルト コンストラクターが見つかりませんでした。 context.request.async.StandardServletAsyncWebRequest

しかし、Spring3.2 と jboss as 7によると、これは正常な動作です。JBoss 用の Petclinic サンプルの変更に関するアドバイスをいくつか見つけましたが、それらはすべて、更新された 2013 バージョンではなく、古いバージョンのサンプルに関するものです ( http://blog.springsource.org/2013/03/21/spring -petclinic-is-on-github/ )。サンプルは Tomcat 7.0.39 で正常に動作します。

アップデート:

この問題は、JBoss を使用して Eclipse からサンプルを実行した場合にのみ発生します。Andrzej が言ったように、スタンドアロンの maven を使用してアプリをビルドし、結果の war をデプロイすると、問題なく動作します。問題は、JBoss/JBoss Tools が Eclipse からのデプロイ時に誤った war 名とコンテキスト ルートを使用することです。pom.xml では war 名が として指定されて<warName>petclinic</warName>いますが、JBoss は代わりに「spring-petclinic」を使用します。Tomcat、Glassfish、および Weblogic にはこの問題はなく、Eclipse からのデプロイメントで正しく動作します。

回避策は、http://localhost:8080/spring-petclinic/代わりに使用するかhttp://localhost:8080/petclinic/、WEB-INF/jboss-web.xml を介してコンテキストルートを構成することです。

<jboss-web>
    <context-root>petclinic</context-root>
</jboss-web>
4

1 に答える 1