2012-05-08 2 views
0

제 질문은 ESB에 설치된 버전 대신 패키지 된 스프링 버전 ?퓨즈 ESB (ServiceMix 4.4.1-fuse-03-06)에 배포 할 때 호환되지 않는 버전의 스프링

퓨즈 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 위치 [beanpath : META-INF/spring/app-context.xml]에서 bean 정의를 가져 오지 못했습니다. 잘못된 자원 : ServletContext 자원 [/ WEB-INF /cxf-servlet.xml]; 중첩 예외 org.springframework.beans.factory.BeanDefinitionStoreException이다 클래스 경로 자원에서 예기치 않은 예외 파싱 XML 문서 [META-INF/스프링/앱의 context.xml]; 클래스 [org.springframework.jdbc.config.JdbcNamespaceHandler] 네임 스페이스 [http://www.springframework.org/schema/jdbc] 구현하지 않습니다 [된 org.springframework.beans : 중첩 된 예외 org.springframework.beans.FatalBeanException입니다 .factory.xml.NamespaceHandler] org.springframework.beans.factory.parsing.FailFastProblemReporter.error (FailFastProblemReporter.java:68)에 인터페이스 [73 : 된 org.springframework.beans : 3.0.5.RELEASE]

이것은 예기치 않은 스프링 버전이 사용되고 있음을 보여줍니다. 3.0.6이 Bundle-Classpath에 있음을 알 수 있습니다. 나는 번들이 번들 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에 서비스를 배포하는 올바른 방법이라고 확신하지만 퓨즈가 제공하는대로 패키징 및 WAR를 설치하려고합니다. . –

관련 문제