2

我需要开发一个具有清晰的后端前端分离的 OSGi 应用程序,希望使用 JAX-WS 完成。谷歌结果指向支持 JAX-WS的Apache-CXF 。应用程序的后端和前端将在两个具有独立 Equinox OSGi 容器的 JVM 中运行。是否有将 Apache-CXF 与 Equinox 集成的标准方法?这是否也需要嵌入 Equinox 中的 Tomcat 或 Jetty 之类的 servlet 容器?还是有更方便的行之有效的方法来做到这一点?

4

2 回答 2

4

在 OSGi 中使用 CXF 的最简单且经过验证的最佳方法是使用 Apache Karaf。它是一个基于 Equinox 或 Felix 的 OSGi 服务器,并针对与多个 Apache 框架(如 CXF、Camel、ActiveMQ)的集成进行了优化。

如果你想使用普通的 Equinox,那么上面提到的 DOSGi 发行版是一个很好的起点。它包含运行基于 CXF 的分布式 OSGi 所需的所有包。这意味着它也适用于大多数 CXF JA-XWS 用例。

另一方面,在 Karaf 中,您可以更好地集成所有 CXF 模块。它也经过了更好的测试,因为它用于 Servicemix 和几个商业解决方案,例如来自我工作的 Redhat 和 Talend。

对于您的特殊情况,分布式 OSGi 本身也可能是一个很好的选择。这意味着您不直接提供/消费CXF服务。相反,您发布和使用 OSGi 服务,而 CXF 负责远程处理。

我编写了一个教程系列,展示了如何将 CXF 与 Apache karaf 一起使用:

于 2013-04-21T14:53:06.283 回答
2

有一个 CXF 子项目DOSGi,它集成了 CXF 和 OSGi

于 2013-04-21T09:50:29.583 回答