我有felix-framework-5.0.1
,我试图将slf4j-api-1.6.0.jar
捆绑到felix isgi容器中。
我正在输入install file:bundle/slf4j-api-1.6.0.jar
我收到了一封邮件Bundle ID: 42
然后我尝试启动捆绑start 42
我收到了消息
org.osgi.framework.BundleException: Unable to resolve slf4j.api [42](R 42.0): missing requirement [slf4j.api [42](R 42.0)] osgi.wiring.package; (&(osgi.wiring.p
ackage=org.slf4j.impl)(version>=1.5.5)) Unresolved requirements: [[slf4j.api [42](R 42.0)] osgi.wiring.package; (&(osgi.wiring.package=org.slf4j.impl)(version>=
1.5.5))]
g!
任何人都可以帮助我吗?如何将slf4j
捆绑到felix?
答案 0 :(得分:1)
slf4j-api需要 org.slf4j.impl 包。这个包包含在每个slf4j实现中,如slf4j-simple,slf4j-logback等。
实现包需要来自API工件的 org.slf4j 包。有一个交叉引用。这可能只是因为实现是API fragment bundles的原因。当实现与API一起安装时,它们将具有一个共同的类加载器,它们将一起解决。他们的要求都会得到满足。
简而言之:您必须选择其中一个实现并安装它。例如:slf4j-simple。
您应该使用相同版本的API和实现来满足其“交叉要求”。
答案 1 :(得分:0)