我需要访问OSGi-Environment(Equinox)中的Web服务。我已经有了将webservice用作独立应用程序的代码。
示例代码使用Axis2这似乎是一个问题,因为我需要将所有必需的库添加为单独的bundle。这不适用于Axis2,因为项目提供的jar文件不是为OSGi准备的。
我试图" bundelize"通过BND的JAR文件,但最终捆绑包不起作用,因为"包使用冲突错误:org.apache.axis2.addressing"
如何让Axis2 OSGi识别?
或者 - 在Equinox(普通而不是Eclipse)中访问(soap)web服务的简单且万无一失的变体是什么?我已经尝试过Apache CXF失败了,因为看起来它试图在运行时生成代码,Axis2也很难,正如我的帖子所示。
答案 0 :(得分:2)
您应该考虑将Axis2库(和依赖项)嵌入到捆绑包中。在这种情况下,Axis2不会被部署为自己的包 - 而是将类/ jar复制到您的包中。
如果您使用maven构建捆绑包,则应该查看maven-bundle-plugin和Embedding dependencies部分。
如果没有启用OSGi的Axis2库,我也建议仔细看看(我不使用它,所以我不知道它,但快速搜索结果在org.apache.axis2.osgi)。