Spring-ws 1.5.9 は Spring 2.5 に依存します (pom に基づく)。クラスローディングの問題に遭遇することなく、Spring 3 で使用できますか。一部のパッケージが 2 つの間で一致することはわかっていますが、それらの Spring 3 jar を含めないことはできますか? これに関する公式の言葉が見つからないようです。
2 に答える
skaffmanの回答に加えて、Spring-WS1.5.9をSpring3からMavenで使用する方法は次のとおりです。
1)最初にSpring3のOXM依存関係を除外します。POMから次の依存関係を削除するだけです。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
</dependency>
Spring 3に推移的に依存する別のフレームワーク(Apache Camelのcamel-springモジュールなど)を使用している場合は、次を使用します。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
</exclusion>
</exclusions>
</dependency>
2)Spring-WS1.5.9がSpring2.5.6に持つ推移的な依存関係を削除します。
<dependency>
<groupId>org.springframework.ws</groupId>
<artifactId>spring-ws-core</artifactId>
<version>1.5.9</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.ws</groupId>
<artifactId>spring-ws-support</artifactId>
<version>1.5.9</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</exclusion>
</exclusions>
</dependency>
3)最後に、必要なSpring 3モジュール(上記のリスト)を依存関係としてPOMに含めるようにしてください。
これで、Spring-WS1.5.9をSpring3.xで使用できるようになります。
正式には、いいえ、互換性がありません。org.springframework.oxm
あなたが言ったように、特に2つの間にパッケージの競合があります。このパッケージは Spring-WS から Spring 3 に持ち込まれましたが、この 2 つが衝突します。
Spring 3.0 がリリースされた直後に Spring-WS 2.0 の作業が完了するはずでしたが、これは実現していません。それが実現するまで、Spring-WS は Spring Framework の現在のリリースと互換性がないままです。
実際にはorg.springframework.oxm
、Spring 3 ディストリビューションから JAR を省略しても、2 つがうまく連携することがわかりました。ただし、maven を使用している場合、これがオプションであるかどうかはわかりません。