【发布时间】:2011-05-13 15:39:38
【问题描述】:
我需要访问 OSGi 环境 (Equinox) 中的 Web 服务。我已经有了将 Web 服务用作独立应用程序的代码。
示例代码使用 Axis2 这似乎是一个问题,因为我需要将所有必需的库添加为单独的包。这不适用于 Axis2,因为项目提供的 jar 文件不是为 OSGi 准备的。
我尝试通过 BND “捆绑” JAR 文件,但最终捆绑不起作用,因为“包使用冲突错误:org.apache.axis2.addressing”
如何让 Axis2 支持 OSGi?
或者 - 在 Equinox(普通而不是 Eclipse)中访问(soap)Web 服务的简单且万无一失的变体是什么?我已经尝试过失败的 Apache CXF,因为它看起来试图在运行时生成代码,而 Axis2 也非常困难,正如我的帖子所示。
【问题讨论】:
-
能否手动捆绑Axis2依赖并添加手写清单文件? org.apache.axis2.addressing 究竟与什么冲突?
-
祝你好运——axis2 需要大约十个不同的 jar,并且有几十个包需要导出。欢迎来到 OSGi 捆绑地狱 :( 关于包使用冲突,我不知道它是什么原因。因为 OSGi 通常会遇到可能由不同原因引起的错误消息,OSGi 调试真的很痛苦。
-
我知道这两篇文章——我的问题是,对于相关的包,Import-Package 部分有大约 60 行,其中声明了几十个包。此外,每 80 个字符的硬换行使阅读这样的清单变得非常困难。如果没有支持这项工作的工具,这几乎是不可能的。