【问题标题】:OSGI Unable to resolve root: failed to start bundle 'missing requirement' using javax.ws.rs : osgi.wiring.packageOSGI 无法解析根目录:无法使用 javax.ws.rs 启动捆绑“缺少要求”:osgi.wiring.package
【发布时间】:2017-09-28 10:11:26
【问题描述】:

我试图启动一个 OSGI REST 包。我放了以下导入包: javax.ws.rs, org.codehaus.jackson.jaxrs, org.apache.cxf.jaxrs.client,

当我运行捆绑包时,我收到以下错误: osgi.wiring.package; filter:="(&(osgi.wiring.package=javax.ws.rs)(version>=2.0.0)(!(version>=3.0.0)))"]]]

【问题讨论】:

  • 听起来像是依赖问题。你能引入你要引入的依赖项吗?您是否引入了 cxf-rt-frontend-jaxrs 和/或 javax.ws.rs-api?
  • 数据不完整。你能把你的包的完整日志和 manifest.mf 放上去吗?

标签: java web-services rest maven blueprint-osgi


【解决方案1】:

第 1 步:检查您是否将这些包导入(运行时导入)到您的包中:

-如果你使用 maven-bundle-plugin 构建你的包,在 pom.xml 中这样做:

    <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
            <instructions>
              ...
              <Import-Package>
                javax.ws.rs*,
                org.codehaus.jackson*,
                org.apache.cxf.jaxrs*,
              </Import-Package>
              ...
           </instructions>
        </configuration>
    </plugin>
  • 除非在 manifest.mf 中列出这些包。

第 2 步: 检查这些包是否在您的容器中部署良好:在容器中提供或手动部署。 如果使用 Apache Karaf,有一个名为 cxf-jaxrs => 安装/启动它的功能。

【讨论】:

    猜你喜欢
    • 2017-09-26
    • 2018-05-10
    • 2015-07-28
    • 1970-01-01
    • 2019-10-11
    • 2019-09-15
    • 2015-05-26
    • 2015-07-04
    • 2016-02-18
    相关资源
    最近更新 更多