Мой вопрос: как я могу заставить пакет использовать версию Spring, упакованную с ним, а не версию, установленную на ESB?
У меня есть простая война веб-сервисов, которую я пытаюсь установить и запустить в Fuse ESB. WAR зависит от Spring 3.0.6, и у меня есть функция Spring 3.0.5, установленная в ESB. Я получаю сообщение об ошибке ниже после установки и попытки запустить пакет.
22:24:43 869 | ОШИБКА | л Поток консоли | РегистрацияWebAppVisitorWC | 163 - org.ops4j.pax.web.pax-web-extender-war - 1.0.3 | Исключение регистрации. Пропуская. org.springframework.beans.factory.parsing.BeanDefinitionParsingException: проблема с конфигурацией: не удалось импортировать определения bean-компонентов из URL-адреса [classpath:META-INF/spring/app-context.xml] Оскорбительный ресурс: ресурс ServletContext [/WEB-INF/cxf -servlet.xml]; вложенным исключением является org.springframework.beans.factory.BeanDefinitionStoreException: Неожиданное исключение при анализе XML-документа из ресурса пути к классу [META-INF/spring/app-context.xml]; вложенным исключением является org.springframework.beans.FatalBeanException: класс [org.springframework.jdbc.config.JdbcNamespaceHandler] для пространства имен [http://www.springframework.org/schema/jdbc] не реализует [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 находится в Bundle-Classpath. Я бы подумал, что пакет должен использовать только версию Spring в папке пакета lib.
У меня также есть эта конфигурация pom, так что зависимости Maven включаются в путь к классу при развертывании WAR в ServiceMix.
<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>