【发布时间】:2017-09-26 00:35:46
【问题描述】:
我一直在尝试制作 OSGI REST 包。我已经将其简化为一个人为的最小化示例,该示例具有单个捆绑工作区和一个使用一些注释的单个类。当我通过 Eclipse 运行包时,我在解析 javax.ws.rs 包时遇到错误。我已将 javax.ws.rs-api 2.0.1 添加到 cnf 项目中,并将 javax.ws.rs-api-2.0.1.jar 添加到我的包的构建路径中。
当我运行捆绑包时,我收到以下错误:
!无法解析捆绑包:[myprovider-1.0.0.201704280130 org.osgi.framework.BundleException:无法解析 myprovider [1](R 1.0):缺少要求 [myprovider [1](R 1.0)] osgi.wiring.package; (&(osgi.wiring.package=javax.ws.rs)(version>=2.0.0)(!(version>=3.0.0))) 未解决的要求:[[myprovider [1](R 1.0)] osgi .wiring.package; (&(osgi.wiring.package=javax.ws.rs)(version>=2.0.0)(!(version>=3.0.0)))] ] !无法启动捆绑 myprovider-1.0.0.201704280130,异常 Unable to resolve myprovider [1](R 1.0): missing requirements [myprovider [1](R 1.0)] osgi.wiring.package; (&(osgi.wiring.package=javax.ws.rs)(version>=2.0.0)(!(version>=3.0.0))) 未解决的要求:[[myprovider [1](R 1.0)] osgi .wiring.package; (&(osgi.wiring.package=javax.ws.rs)(version>=2.0.0)(!(version>=3.0.0)))]
我的 bundle 的 bnd.bnd 是:
-buildpath: \
javax.ws.rs-api;version=2.0,\
osgi.cmpn,\
osgi.core
-runrequires: \
osgi.identity; filter:='(osgi.identity=org.apache.felix.gogo.command)',\
osgi.identity; filter:='(osgi.identity=org.apache.felix.gogo.runtime)',\
osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.shell)'
-runfw: org.apache.felix.framework;version='[5.4.0,5.4.0]'
-runee: JavaSE-1.8
Export-Package: myprovider
我最初尝试做的与这个问题几乎相同:
Error implementing a OSGI REST: `OSGi bundle not started : missing requirement`
但是,我的 bnd 文件中已经有了解决该问题的方法。
【问题讨论】:
标签: java rest osgi bnd bndtools