【问题标题】:Import-Package/Export-Package for creating bundle for ServiceMix用于为 ServiceMix 创建包的 Import-Package/Export-Package
【发布时间】:2017-09-26 02:40:27
【问题描述】:

我想创建一个使用休眠进行数据库事务的包。在进入休眠状态之前,我使用的是普通的sql。在camel.xml 中提到休眠和相关配置后,我尝试在 ServiceMix 中部署捆绑包。当我尝试使用 start 525 启动此捆绑包时,我收到一条错误消息:

Error executing command: Error executing command on bundles:
    Error starting bundle 525: Unable to resolve my.package.artifactid [525](R 525.0): missing requirement [my.package.artifactid [525](R 525.0)] osgi.wiring.package; (osgi.wiring.package=javax.interceptor) Unresolved requirements: [[my.package.artifactid [525](R 525.0)] osgi.wiring.package; (osgi.wiring.package=javax.interceptor)]

这是用于 javax.interceptor 的。我把这个包放在<Export-Package></Export-Package> 的maven bundle felix 插件pom.xml 中。这解决了问题,但后来对 org.hibernate 和其他包显示了相同的错误。 我的问题是,当我把它放在<Export-Package> 标签中时,我做对了吗?如果这是正确的,我必须为大量的包继续这样做。有没有办法摆脱这个忙碌的程序? 如果我做错了,我该怎么办?

【问题讨论】:

  • 这个错误似乎表明你的模块需要导入javax.inteceptor。您可以尝试将“javax.interceptor”放入 中吗?关于导入:您可以通过在 maven 捆绑插件的配置中指定 * 将其留给 maven 捆绑插件来填充大部分 清单条目。如果 maven bundle plugin 遗漏了一些必需的包,请在星号后添加:*, package1, package2

标签: apache-camel osgi apache-felix osgi-bundle apache-servicemix


【解决方案1】:

是的。你做错了。

missing requirement [my.package.artifactid [525](R 525.0)] osgi.wiring.package; (osgi.wiring.package=javax.interceptor) 

错误表明,您的包需要 javax.interceptor 包(例如,您的包中的类直接通过引用它们或通过使用任何框架(如休眠)间接使用包 javax.interceptor 中的类)如果没有它,您的捆绑包将无法加载引用的类。

现在,请按照以下步骤解决此问题。

  1. 在 pom.xml 中,在 maven-bundle-plugin 下,不要指定显式导入- 包装清单。如果您指定,请删除标签。这将确保 bundle 插件自己计算依赖关系。
  2. 构建捆绑包。检查您的包的生成的 manifest.mf 文件。 import-package: 标头必须有包 javax.interceptor 的条目。

  3. 现在,您需要确保 javax.interceptor 包被 servicemix 中的至少一个包导出。(检查these commandsuse webconsole 以了解导出此包的包。

    李>
  4. 如果没有找到导出此包的包,则需要添加该包。

  5. 您可以使用 google 查找是否有导出此包的库,例如 this。确保 jar 是一个捆绑包,而不是普通的 jar。

  6. 大多数情况下,maven 中的传递依赖项如果按原样部署到 servicemix,就可以完成这项工作。

  7. 如果您部署一个导出 javax.interceptor 的 jar,则部署的 jar 可能依赖于其他某个 jar。因此,请确保已部署的 jars 状态在 Servicemix 中显示为已启动。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    • 2011-07-27
    • 2010-11-18
    • 2022-01-07
    • 2016-08-12
    相关资源
    最近更新 更多