如何从Equinox OSGi应用程序公开和使用Web服务?

时间:2013-04-21 09:10:59

标签: web-services osgi cxf equinox dosgi

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

2 个答案:

答案 0 :(得分:4)

在OSGi中使用CXF的最简单且最有效的方法是使用Apache Karaf。它是一个基于Equinox或Felix的OSGi服务器,并且针对与CXF,Camel,ActiveMQ等几个Apache框架的集成进行了优化。

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

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

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

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

答案 1 :(得分:2)

有一个CXF子项目DOSGi,它将CXF与OSGi

集成在一起