2017-11-27 36 views
-1

私はApache karafとOSGIを初めて使用しています。私は非常に単純なバンドルを作成して実行しようとしています。そのバンドルを開始しながら、しかし、私はこのエラーを取得しています:コマンドを実行するバンドル不足要件(osgi.wiring.package)を開始できません

エラー:エラーがバンドル上でコマンドを実行:行方不明の要件[karaf [86](R 86.0: 解決karaf [86](R 86.0)にできません。 )] osgi.wiring.package; (osgi.wiring.package = bundle)未解決 要件:[[karaf [86](R 86.0)] osgi.wiring.package; (osgi.wiring.package =バンドル)]

私のポンポンは次のとおりです。 4.0.0

<groupId>com</groupId> 
<artifactId>karaf</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>bundle</packaging> 

<name>karaf Bundle</name> 
<description> 
    karaf OSGi bundle project. 
</description> 

<properties> 
    <maven-bundle-plugin.version>2.5.4</maven-bundle-plugin.version> 
    <osgi.version>6.0.0</osgi.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>org.osgi</groupId> 
     <artifactId>org.osgi.core</artifactId> 
     <version>${osgi.version}</version> 

     <scope>provided</scope> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.felix</groupId> 
      <artifactId>maven-bundle-plugin</artifactId> 
      <version>${maven-bundle-plugin.version}</version> 
      <extensions>true</extensions> 
      <configuration> 
       <instructions> 
        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> 
        <Bundle-Version>${project.version}</Bundle-Version> 
        <Bundle-Activator>bundle.Activator</Bundle-Activator> 
        <Export-Package> 
         bundle*;version=${project.version} 
        </Export-Package> 
        <Import-Package> 
         org.osgi.framework,* 
        </Import-Package> 
       </instructions> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

私のMANIFEST.MFファイルはここにあります。

> Manifest-Version: 1.0 
Bnd-LastModified: 1394131053386 
Bundle-Copyright: Copyright (c) OSGi Alliance (2000, 2014). All Rights R 
eserved. 
Bundle-Description: OSGi Core Release 6, Interfaces and Classes for use 
in compiling bundles. 
Bundle-License: http://opensource.org/licenses/apache2.0.php; link="http 
://www.apache.org/licenses/LICENSE-2.0"; description="Apache License, V 
ersion 2.0" 
Bundle-ManifestVersion: 2 
Bundle-Name: osgi.core 
Bundle-SymbolicName: osgi.core 
Bundle-Vendor: OSGi Alliance 
Bundle-Version: 6.0.0.201403061837 
Created-By: 1.6.0_45 (Sun Microsystems Inc.) 
DynamicImport-Package: * 
Export-Package: org.osgi.dto;version="1.0",org.osgi.resource;version="1. 
0",org.osgi.resource.dto;version="1.0";uses:="org.osgi.dto",org.osgi.fr 
amework;version="1.8",org.osgi.framework.dto;version="1.8";uses:="org.o 
sgi.dto",org.osgi.framework.hooks.bundle;version="1.1";uses:="org.osgi. 
framework",org.osgi.framework.hooks.resolver;version="1.0";uses:="org.o 
sgi.framework.wiring",org.osgi.framework.hooks.service;version="1.1";us 
es:="org.osgi.framework",org.osgi.framework.hooks.weaving;version="1.1" 
;uses:="org.osgi.framework.wiring",org.osgi.framework.launch;version="1 
.2";uses:="org.osgi.framework",org.osgi.framework.namespace;version="1. 
1";uses:="org.osgi.resource",org.osgi.framework.startlevel;version="1.0 
";uses:="org.osgi.framework",org.osgi.framework.startlevel.dto;version= 
"1.0";uses:="org.osgi.dto",org.osgi.framework.wiring;version="1.2";uses 
:="org.osgi.framework,org.osgi.resource",org.osgi.framework.wiring.dto; 
version="1.2";uses:="org.osgi.dto,org.osgi.resource.dto",org.osgi.servi 
ce.condpermadmin;version="1.1.1";uses:="org.osgi.framework,org.osgi.ser 
vice.permissionadmin",org.osgi.service.packageadmin;version="1.2";uses: 
="org.osgi.framework",org.osgi.service.permissionadmin;version="1.2",or 
g.osgi.service.startlevel;version="1.1";uses:="org.osgi.framework",org. 
osgi.service.url;version="1.0",org.osgi.util.tracker;version="1.5.1";us 
es:="org.osgi.framework" 
Import-Package: javax.security.auth.x500;resolution:=optional 
Tool: Bnd-2.2.0.20130927-173453 
+0

[this](https://stackoverflow.com/questions/30480508/karaf-maven-unable-to-resolve-missing-requirement-osgi-wiring-package)help? – pirho

答えて

2

これを打破するのをしてみましょう:「行方不明の要件は、」単にあなたのバンドルは、OSGiのフレームワークにインストールされていることを意味しますが、インストールされている他のバンドルのいずれかによって満たすことができなかった要件があります。

未解決の要件はネームスペースosgi.wiring.packageにあります。つまり、その種類の要件はJavaパッケージのインポートです。つまり、バンドルのマニフェストにImport-Packageと表示されます。つまり、バンドルはパッケージをインポートし、他のバンドルはそのパッケージをエクスポートしません。

最終的に最後のビット(osgi.wiring.package=bundle)は、フィルタで、バンドルが要求する正確なパッケージ名を表します。この場合、あなたのバンドルは明らかに "bundle"という名前のパッケージをインポートします。

これはちょっと奇妙なことです。バンドルの作成方法に間違いがあった可能性があります。このバンドルをどのように構築したかについての詳細を投稿すると、役立ちます。

+0

こんにちは、私はpom.xmlの詳細を追加しました。しかし、私のorg.osgi jarファイルには、osgi.framework.wiringパッケージがあります。だから、なぜそれが欠落しているというエラーを出すのか? – pres

+0

あなた自身のバンドルではなく、osgi.core-6.0.0.jarのマニフェストを投稿しました。また、なぜ "bundle"という名前のパッケージをエクスポートしていますか? Javaソースコードに "bundle"というパッケージがありますか?これはすべて理解することが非常に難しいです、私はあなたが戻って、あなたが実際にやろうとしていることを私たちに教えてくれると思います。 –

+0

@presあなたが[解決に興味を失ったようです](http://idownvotedbecau.se/beingunresponsive)ので、あなたの質問を下降させてください。 –

関連する問題