gpt4 book ai didi

java - OSGI 缺少需求错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:16:23 26 4
gpt4 key购买 nike

我是 OSGI 的新手,我想弄清楚如何解决下面的错误

org.osgi.framework.BundleException: bundle org.foo.serviceBundle [253] 中 Unresolved 约束:无法解决 253.0:缺少要求 [253.0] 包; (&(package=org.slf4j)(版本>=1.6.0)(!(版本>=2.0.0)))

我使用 maven 原型(prototype)生成一个包,并向我的 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 应用程序服务器上。任何帮助将不胜感激

谢谢

最佳答案

这通常意味着您缺少导出 org.slf4j 的包。这是整个工作流程:

  • maven-bundle-plugin 将确保您自己项目的 list 导入 org.slf4j(因为您需要它)。

  • 项目 POM 中的 Maven 依赖项将确保下载 slf4j 工件

然后两件事可能会出错:

  • 您的编译失败并且未找到 slf4j 工件(但我想您会注意到这一点)

  • 或者您下载的 slf4 工件没有 list 或未导出 org.slf4j。要检查它,只需查看 org.slf4j 包的 list 。如果您直接在像 eclipse 这样的 IDE 中运行东西,您可能想要 checkin $HOME/.m2/而不是查找工件。

如果您的工件没有合适的 list ,您将不得不找到其他一些可以从中获得合适 bundle 的存储库,或者修改您正在获取的存储库并将其安装到本地存储库(并部署它在你本地的 maven 包存储库(例如 nexus)上,如果你有的话)

最后一点:考虑使用 maven-scr 插件而不是直接定义激活器和服务发现。我希望我在开始使用 OSGi 时就知道这一点!

关于java - OSGI 缺少需求错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8352710/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com