从 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,安装如果没有其他缺失的依赖项,它应该可以正确启动。