Я пытаюсь выполнить обновление до OpenSAML 3 в пакете OSGi, работающем на Apache Karaf (4.0.5), используя пакет сервисных миксов opensaml (org.apache.servicemix.bundles:org.apache.servicemix.bundles.opensaml:jar:3.2.0_1
).
Тест, анализирующий SAML, работает, поэтому я думаю, что я на правильном пути. Однако, если я устанавливаю пакет на Karaf, я получаю сообщение об ошибке "ресурс не найден" при попытке загрузить default-config.xml
.
2016-06-21 16:29:10,477 | INFO | ool-120-thread-1 | InitializationService | 388 - org.apache.servicemix.bundles.opensaml - 3.2.0.1 | Initializing OpenSAML using the Java Services API
2016-06-21 16:29:10,478 | DEBUG | ool-120-thread-1 | InitializationService | 388 - org.apache.servicemix.bundles.opensaml - 3.2.0.1 | Initializing module initializer implementation: org.opensaml.core.xml.config.XMLObjectProviderInitializer
2016-06-21 16:29:10,487 | DEBUG | ool-120-thread-1 | XMLConfigurator | 388 - org.apache.servicemix.bundles.opensaml - 3.2.0.1 | XMLObjectProviderRegistry did not exist in ConfigurationService, will be created
2016-06-21 16:29:10,488 | DEBUG | ool-120-thread-1 | ractXMLObjectProviderInitializer | 388 - org.apache.servicemix.bundles.opensaml - 3.2.0.1 | Loading XMLObject provider configuration from resource 'default-config.xml'
2016-06-21 16:29:10,489 | ERROR | ool-120-thread-1 | ractXMLObjectProviderInitializer | 388 - org.apache.servicemix.bundles.opensaml - 3.2.0.1 | Problem loading configuration resource
org.opensaml.core.xml.config.XMLConfigurationException: Resource not found
at org.opensaml.core.xml.config.AbstractXMLObjectProviderInitializer.init(AbstractXMLObjectProviderInitializer.java:54)[388:org.apache.servicemix.bundles.opensaml:3.2.0.1]
at org.opensaml.core.xml.config.XMLObjectProviderInitializer.init(XMLObjectProviderInitializer.java:45)[388:org.apache.servicemix.bundles.opensaml:3.2.0.1]
at org.opensaml.core.config.InitializationService.initialize(InitializationService.java:56)[388:org.apache.servicemix.bundles.opensaml:3.2.0.1]
AbstractXMLObjectProviderInitializer
загружает ресурс следующим образом (resource
равно default-config.xml
):
Thread.currentThread().getContextClassLoader().getResourceAsStream(resource)
default-config.xml
находится в корне банки (opensaml), что заставляет меня задаться вопросом, не по этой ли причине его невозможно найти.
Я использую maven-bundle-plugin
в своем проекте, и помимо зависимости и различного использования классов opensaml я предоставил явный импорт (Import-Package
) для следующих пакетов:
org.opensaml.core.xml.config,
org.opensaml.saml.config,
org.opensaml.xmlsec.config,
Есть ли что-то, чего мне не хватает в манифесте моего пакета или где-либо еще, чтобы это работало? Я предполагаю, что пакет opensaml, выпущенный самим сервисмиксом, должен работать как есть...