2012-05-08 8 views
0

私の質問は、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> 

答えて

0

バンドルクラスパスはMANIFEST.MF、ではない/ libフォルダからインポート、パッケージで定義されています。おそらく、Spring 3.0.6を使用するようにMaven-Bundle-Pluginを設定する必要があります。

+0

ありがとう、私はmaven-bundle-pluginを使うように変更することができますが、ESBにサービスをデプロイする正しい方法だと確信していますが、ヒューズがその能力を提供しているので、 。 –

関連する問題