从 Felix shell 启动 OSGI 包:未解决的约束
Start OSGI bundle from Felix shell: Unresolved constraint
我正在尝试使用 felix 执行 OSGI 包。但是,我什至无法启动捆绑包。 shell 命令出错。
这是捆绑包的 pom.xml:
<project>
<modelVersion>4.0.0</modelVersion>
<packaging>bundle</packaging>
<groupId>gateway</groupId>
<artifactId>home.interfaces</artifactId>
<version>1.0.0</version>
<name>Interface Service Provider</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.0.1</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>
${pom.artifactId}
</Bundle-SymbolicName>
<Export-Package>
temp;pres
</Export-Package>
</instructions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-ipojo-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<goals>
<goal>ipojo-bundle</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
这是命令中的错误 shell:
Welcome to Felix
================
-> ps
START LEVEL 1
ID State Level Name
[ 0] [Active ] [ 0] System Bundle (2.0.4)
[ 1] [Active ] [ 1] Apache Felix Bundle Repository (1.4.3)
[ 2] [Active ] [ 1] Apache Felix Shell Service (1.4.2)
[ 3] [Active ] [ 1] Apache Felix Shell TUI (1.4.1)
[ 4] [Installed ] [ 1] Interface Service Provider (1.0.0)
[ 5] [Installed ] [ 1] Presence Service Provider (1.0.0)
[ 6] [Installed ] [ 1] Temperature Service Provider (1.0.0)
[ 7] [Installed ] [ 1] Analyser Service (1.0.0)
-> start 4
org.osgi.framework.BundleException: Unresolved constraint in bundle home.interfa
ces [4]: package; (&(package=org.osgi.service.cm)(version>=1.2.0))
->
这是什么错误,我该如何解决?
您正在尝试启动包 #4,正如错误显示的那样,它依赖于导出 org.osgi.service.cm 且版本 >=1.2.0 的外部包,您没有把它加入你的列表中。
奇怪的是我在你的 pom.xml 中没有看到任何 import-package 语句,顺便说一句,那个包是 Felix Configuration Admin Service,安装如果没有其他缺失的依赖项,它应该可以正确启动。
我正在尝试使用 felix 执行 OSGI 包。但是,我什至无法启动捆绑包。 shell 命令出错。
这是捆绑包的 pom.xml:
<project>
<modelVersion>4.0.0</modelVersion>
<packaging>bundle</packaging>
<groupId>gateway</groupId>
<artifactId>home.interfaces</artifactId>
<version>1.0.0</version>
<name>Interface Service Provider</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.0.1</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>
${pom.artifactId}
</Bundle-SymbolicName>
<Export-Package>
temp;pres
</Export-Package>
</instructions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-ipojo-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<goals>
<goal>ipojo-bundle</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
这是命令中的错误 shell:
Welcome to Felix
================
-> ps
START LEVEL 1
ID State Level Name
[ 0] [Active ] [ 0] System Bundle (2.0.4)
[ 1] [Active ] [ 1] Apache Felix Bundle Repository (1.4.3)
[ 2] [Active ] [ 1] Apache Felix Shell Service (1.4.2)
[ 3] [Active ] [ 1] Apache Felix Shell TUI (1.4.1)
[ 4] [Installed ] [ 1] Interface Service Provider (1.0.0)
[ 5] [Installed ] [ 1] Presence Service Provider (1.0.0)
[ 6] [Installed ] [ 1] Temperature Service Provider (1.0.0)
[ 7] [Installed ] [ 1] Analyser Service (1.0.0)
-> start 4
org.osgi.framework.BundleException: Unresolved constraint in bundle home.interfa
ces [4]: package; (&(package=org.osgi.service.cm)(version>=1.2.0))
->
这是什么错误,我该如何解决?
您正在尝试启动包 #4,正如错误显示的那样,它依赖于导出 org.osgi.service.cm 且版本 >=1.2.0 的外部包,您没有把它加入你的列表中。
奇怪的是我在你的 pom.xml 中没有看到任何 import-package 语句,顺便说一句,那个包是 Felix Configuration Admin Service,安装如果没有其他缺失的依赖项,它应该可以正确启动。