私の質問は、ESBにインストールされているバージョンではなく、パッケージ化されたSpringのバージョン?Fuse ESB(ServiceMix 4.4.1-fuse-03-06)にデプロイする際に、互換性のないバージョンのSpringがあります。
ヒューズESBにインストールして起動しようとしている簡単なWebservices WARがあります。 WARはSpring 3.0.6に依存しており、Spring 3.0.5の機能はESBにインストールされています。インストールしてバンドルを開始しようとすると、以下のエラーが表示されます。
22:24:43,869 |エラー| lコンソールスレッド| RegisterWebAppVisitorWC | 163 - org.ops4j.pax.web.pax-web-extender-war - 1.0.3 |登録例外。スキップする。 org.springframework.beans.factory.parsing.BeanDefinitionParsingException:コンフィグレーションの問題:URLロケーションからのBean定義のインポートに失敗しました[クラスパス:META-INF/spring/app-context.xml] 違反しているリソース:ServletContextリソース[/ WEB-INF /cxf-servlet.xml];ネストされた例外はorg.springframework.beans.factory.BeanDefinitionStoreExceptionです:クラスパスリソース[META-INF/spring/app-context.xml]からXMLドキュメントを解析する予期しない例外。ネストされた例外はorg.springframework.beans.FatalBeanExceptionです:ネームスペース[http://www.springframework.org/schema/jdbc]のクラス[org.springframework.jdbc.config.JdbcNamespaceHandler]は[org.springframework.beans .factory.xml.NamespaceHandler] org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)における界面 [73:org.springframework.beans:3.0.5.RELEASE]
これは、予期しないバージョンのSpringが使用されていることを示しています。 3.0.6がバンドルクラスパス上にあることがわかります。私はバンドルがバンドルのlibフォルダ内のSpringのバージョンのみを使うべきだと思っていたでしょう。
WARをServiceMixにデプロイするときに、Maven依存関係がクラスパスに含まれるように、このpom設定もあります。
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<classpathLayoutType>repository</classpathLayoutType>
</manifest>
</archive>
<webXml>src/main/webapp/WEB-INF/web.xml</webXml>
<webResources>
<resource>
<directory>src/main/resources</directory>
<targetPath>WEB-INF</targetPath>
<includes>
<include>**.*</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
ありがとう、私はmaven-bundle-pluginを使うように変更することができますが、ESBにサービスをデプロイする正しい方法だと確信していますが、ヒューズがその能力を提供しているので、 。 –