1

Maven を使用してアプリケーションに Struts2 と Spring を統合しようとしています。Spring-web、Spring、Struts2-spring プラグインに関連するすべての依存関係を Pom ファイルに配置しました

<!-- Spring framework --> 
     <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring</artifactId>
 <type>jar</type>
 <version>2.5.6</version>
 </dependency>
 <dependency>
 <groupId>org.springframework</groupId>
 <artifactId>spring-web</artifactId>
 <version>2.5.6</version>
 </dependency>
 <dependency>
 <groupId>org.apache.struts</groupId>
 <artifactId>struts2-spring-plugin</artifactId>
 <version>2.2.3</version>
 </dependency>

そして私はWeb.xmlファイルに以下を含めました、

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>
        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
    </filter>
    <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping> 
    <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>  

     <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param> 

Maven warファイルを使用して実行すると生成され、warファイルをサーバー(glassfish)にデプロイすると、エラーメッセージが次のように表示されます

"Error An error has occurred
Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.NoClassDefFoundError: Could not initialize class org.springframework.web.context.ContextLoader. Please see server.log for more details."

誰でもこの問題を解決するのを手伝ってください。

4

1 に答える 1

0

ContextLoader は Spring-web jar にあります。エラーは、このクラス定義が見つからなかったためです。この依存関係が .m2 フォルダーに存在するかどうかを確認してください。

何らかの理由で自動的にダウンロードされない場合は、 mvn install:install コマンドを使用して手動でインストールしてください。可能性の高い解決策については、Maven Spring Hibernate Project の Jars Issues を参照してください。

試す

  1. mvn パッケージを実行し、Spring jar が戦争に参加しているかどうかを確認します

  2. mvn eclipse:eclipse を実行した後、Eclipse を更新し、Eclipse ワークスペースをクリーンアップします - project-clean (Tick Build automatically)

.classpath ファイルを開き、次のようなエントリを確認します。

または、プロジェクト --> プロパティ --> Java ビルド パス --> ライブラリを右クリックして、spring-web jar があるかどうかを確認します。

  1. .m2 リポジトリを開き、jar がリポジトリ内にあるかどうかを確認します。そうでない場合は、インストールを実行します。

  2. mvn dependency:tree を実行し、jar が起動するかどうかを確認します。

それは私が提案できることです

于 2012-01-04T05:50:00.400 に答える