【问题标题】:Cannot use Httpclient-osgi-4.5.2. Missing Requirements无法使用 Httpclient-osgi-4.5.2。缺少要求
【发布时间】:2017-01-02 12:11:14
【问题描述】:

我正在开发一个使用 Apache Felix 作为运行时的 OSGi 应用程序。我使用 Maven 下载 httpclient-osgi。我已经在框架中安装了包。但它会导致以下异常。

似乎我缺少一个导出 org.apache.httpcomponents.httpclient 的包。但我真的不知道哪个包会导出那个包。

org.osgi.framework.BundleException: Unable to resolve org.apache.httpcomponents.httpclient [3](R 3.0): missing requirement [org.apache.httpcomponents.httpclient [3](R 3.0)] osgi.wiring.package; (&(osgi.wiring.package=org.osgi.service.cm)(version>=1.3.0)(!(version>=2.0.0))) Unresolved requirements: [[org.apache.httpcomponents.httpclient [3](R 3.0)] osgi.wiring.package; (&(osgi.wiring.package=org.osgi.service.cm)(version>=1.3.0)(!(version>=2.0.0)))]
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4111)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2117)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:984)
at compilerMain.Main.main(Main.java:39)

感谢您的回复

【问题讨论】:

    标签: java maven osgi osgi-bundle


    【解决方案1】:

    您缺少导出该包 org.osgi.service.cm 的包。这意味着 httpclient 需要 ConfigurationAdmin 规范,并且可能还需要一个正在运行的实例。解决此问题的最简单方法是安装 felix ConfigurationAdmin。

    【讨论】:

    • 它有效。谢谢你。我对osgi很陌生。所以有时我无法处理诸如缺少需求之类的问题。是“osgi.wiring.package=org.osgi.service.cm”那部分显示丢失包的名字吗?
    • 是的。如果您现在使用普通的 felix,那么查看 bndtools 或 Apache Karaf 可能是个好主意。两者都以不同的方式帮助您更轻松地运行 OSGi 项目。
    猜你喜欢
    • 2016-02-18
    • 2017-09-26
    • 1970-01-01
    • 2017-09-28
    • 2019-05-29
    • 2012-01-11
    • 1970-01-01
    • 2017-05-06
    • 2012-11-15
    相关资源
    最近更新 更多