Я пытаюсь развернуть в ESB Runtime маршрут, который использует источник данных karaf, ссылаясь на него в конфигурации Spring как
<osgi:reference id="dataSource" interface="javax.sql.DataSource" filter="(osgi.jndi.service.name=dataSourceName)" />
Однако при развертывании я получаю сообщение:
IllegalArgumentException: interface org.springframework.core.InfrastructurePolicy is not visible from class loader
Ранее аналогичный маршрут был развернут нормально, поэтому я перекомпилировал и развернул его, и у меня возникла та же проблема. Единственное, что я могу видеть, это то, что я изменил то, что я построил ряд bean-компонентов, которые требуют внешних библиотек. Этот маршрут не использует bean-компоненты, но, похоже, Talend в любом случае встраивает библиотеки в файл .kar
. Одним из них является spring-core-3.2.14.RELEASE.jar
, поэтому мне интересно, не конфликтует ли это с версией, установленной в Karaf, в которой, по-видимому, установлен Spring 3.2.18.
Это может быть проблемой, или я лаю не на том дереве?
Если это так, как я могу остановить Talend, включив эти библиотеки в файл .kar
, так как они должны быть развернуты в любом случае в Karaf (и, похоже, в любом случае отображаются как установленные пакеты), а не как часть маршрута .jar
.
Любая помощь или указатели с благодарностью. Спасибо!
Баламута.
Edit:
Библиотека Spring может показаться проблемой, так как при удалении ее из .jar внутри .kar (с помощью zip-редактора) происходит успешное развертывание. Однако это нереализуемое решение, поэтому любые предложения о том, как убедить Talend прекратить включение его в библиотеку, будут приветствоваться.