我正在尝试通过在Spring配置中将karap数据源引用为
来将使用karaf数据源的路由部署到ESB Runtime。<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
。
任何帮助或指针,我们将不胜感激。谢谢!
磁带。
编辑: Spring库似乎是问题所在,因为从.kar中的.jar中删除它(使用zip编辑器)会导致成功部署。但是,这不是可行的解决方案,因此欢迎提出任何劝说Talend停止将其包含在库中的建议。