2017-03-13 6 views
0

OSGiとmavenを使用して、標準の単独アプリケーションを開発しようとしています。FrameworkFactoryをインスタンス化できませんでした。エラー

私はのpom.xml

<dependency> 
    <groupId>org.osgi</groupId> 
    <artifactId>org.osgi.core</artifactId> 
    <version>6.0.0</version> 
</dependency> 

で、次のOSGiの依存関係を持っている私は、次のコード

import org.osgi.framework.launch.FrameworkFactory; 

FrameworkFactory frameworkFactory = ServiceLoader.load(FrameworkFactory.class).iterator().next(); 

を試してみましたが、何が間違っている、このエラーメッセージ

Exception in thread "main" java.util.ServiceConfigurationError: org.osgi.framework.launch.FrameworkFactory: Provider org.osgi.framework.launch.FrameworkFactory could not be instantiated 
at java.util.ServiceLoader.fail(ServiceLoader.java:232) 
at java.util.ServiceLoader.access$100(ServiceLoader.java:185) 
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384) 
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404) 
at java.util.ServiceLoader$1.next(ServiceLoader.java:480) 
at com.scottfu.ci.test.OSGiTest.main(OSGiTest.java:19) 
Caused by: java.lang.InstantiationException: org.osgi.framework.launch.FrameworkFactory 
at java.lang.Class.newInstance(Class.java:427) 
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380) 
... 3 more 
Caused by: java.lang.NoSuchMethodException: org.osgi.framework.launch.FrameworkFactory.<init>() 
at java.lang.Class.getConstructor0(Class.java:3082) 
at java.lang.Class.newInstance(Class.java:412) 
... 4 more 

を得ましたか。

答えて

3

追加した依存関係はOSGi Core APIです。

あなたはequinox、felix、knopflerfishな​​どの実装が必要です。

例えば:

の代わりにあなたが言及した依存関係を追加し、追加

<dependency> 
    <groupId>org.apache.felix</groupId> 
    <artifactId>org.apache.felix.main</artifactId> 
    <version>5.6.2</version> 
</dependency> 
関連する問題