现在的项目使用 ServiceMix 作为运行环境,由于之前没有 OSGi 的经验,所以在使用过程中碰到了很多钉子,在这里总结一下:
- 在 start 一个 bundle 时报出这样的错:XXX bundle could not be resolved. Reason: Missing constraint: Import-package: XXX 。直接的原因当然是你要 import 的某个包没有在可用的 bundle 找到。这里需要了解的是 ServiceMix 的 OSGi 核心 Felix 会在 Maven repository 中加载 bundle。但有时你会发现 Maven repository 中有你需要的 jar 吧。这里我之所以将 bundle 改成为 jar 是因为 Maven repository 中的 jar 并不全是 OSGi bundle。但新生可能会忽视这一点,因为 Maven repository 中的很多 jar 包本身已是一个符合规范的 OSGi bundle了 (可从 MANIFEST.MF 文件看出来),但另一些不是。要解决这个问题你就要把你需要的 jar 包转换为一个 bundle,具体方法你可以参考这篇文章
本文介绍了在使用ServiceMix作为运行环境时遇到的问题及解决方案。主要讨论了如何处理因缺少必要的OSGi bundle而导致的错误,并提供了将普通jar转换为bundle的方法。
1万+

被折叠的 条评论
为什么被折叠?



