1

opensaml servicemix bundle ( org.apache.servicemix.bundles:org.apache.servicemix.bundles.opensaml:jar:3.2.0_1) を使用して、Apache Karaf (4.0.5) で実行されている OSGi バンドルで OpenSAML 3 にアップグレードしようとしています。

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次のようにリソースをロードしています ( resourceis default-config.xml):

Thread.currentThread().getContextClassLoader().getResourceAsStream(resource)

default-config.xml(opensaml)jarのルートにあるため、それが見つからない理由ではないかと思います。

私はmaven-bundle-plugin自分のプロジェクトで を使用しており、opensaml クラスの依存関係とさまざまな用途に加えImport-Packageて、次のパッケージに明示的なインポート ( ) を提供しました。

org.opensaml.core.xml.config,
org.opensaml.saml.config,
org.opensaml.xmlsec.config,

これを機能させるために、バンドルのマニフェストまたは他の場所に欠けているものはありますか? servicemix自体がリリースしたopensamlバンドルはそのまま動作するはずです...

4

2 に答える 2