java – OSGI缺少需求错误
作者:互联网
我是OSGI的新手,我正在试图弄清楚如何解决下面的错误
org.osgi.framework.BundleException:bundle org.foo.serviceBundle中未解决的约束[253]:无法解析253.0:缺少需求[253.0]包; (及(包= org.slf4j)(版本> = 1.6.0)((版本>!= 2.0.0)))
我使用maven原型生成一个包,并在我的Activator类中添加了一些简单的slf4j日志.我也使用maven bundle插件如下:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.2.0</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-Activator>org.shoppingsite.Activator</Bundle-Activator>
</instructions>
</configuration>
</plugin>
我尝试了其他组合,我得到一个不可解析的包或另一个.我正在尝试将该软件包部署到GlassFish appserver上.任何帮助将不胜感激
谢谢
解决方法:
这通常意味着您缺少一个导出org.slf4j的包.这是整个工作流程:
> maven-bundle-plugin将确保您自己的项目清单导入org.slf4j(因为您需要它).
>项目POM中的maven依赖项将确保下载slf4j工件
然后有两件事可能出错:
>您的编译失败并且找不到slf4j工件(但我想您已经注意到了)
>或您下载的slf4工件没有清单或没有导出org.slf4j.要查看它,只需查看org.slf4j包的清单.如果你在像eclipse这样的IDE中直接运行东西,你可能需要检查$HOME / .m2 /而不是找到工件.
如果您的工件没有正确的清单,您将不得不找到一些其他仓库,您可以从中获取适当的捆绑,或修改您获得的仓库并将其安装在本地存储库中(并将其部署在您的本地存储库中)本地maven包存储库(例如nexus),如果你有一个)
最后一件小事:考虑使用maven-scr插件而不是直接定义激活器和服务发现.当我开始使用OSGi时,我希望我知道!
标签:java,osgi,apache-felix,glassfish-3 来源: https://codeday.me/bug/20191005/1856236.html