Web services OSGi捆绑包中的WebSphere8.5+CXF。可能吗?

Web services OSGi捆绑包中的WebSphere8.5+CXF。可能吗?,web-services,websphere,osgi,cxf,jax-ws,Web Services,Websphere,Osgi,Cxf,Jax Ws,我正在为基于WebSphere8.5和OSGi的设计编写PoC 我需要让SOAP Web服务以OSGi捆绑包的形式运行,并使用应用程序中其他OSGi捆绑包公开的OSGi服务 我一直在尝试在OSGi包中获得JAX-WS服务 到目前为止,我尝试的是: 让普通servlet作为OSGi包运行是可行的 让JAX-RS服务作为OSGi包运行是可行的 使用Websphere提供的JAX-WS运行时获取作为OSGi包运行的JAX-WS服务。这似乎不适用于从JAX-WS运行时抛出的实例 使JAX-WS服务作为O

我正在为基于WebSphere8.5和OSGi的设计编写PoC

我需要让SOAP Web服务以OSGi捆绑包的形式运行,并使用应用程序中其他OSGi捆绑包公开的OSGi服务

我一直在尝试在OSGi包中获得JAX-WS服务

到目前为止,我尝试的是:

让普通servlet作为OSGi包运行是可行的 让JAX-RS服务作为OSGi包运行是可行的 使用Websphere提供的JAX-WS运行时获取作为OSGi包运行的JAX-WS服务。这似乎不适用于从JAX-WS运行时抛出的实例 使JAX-WS服务作为OSGi捆绑包运行,禁用Websphere提供的JAX-WS运行时,并尝试使用OSGi捆绑包嵌入CXF2运行时。不适用于从某种JAXB类冲突中抛出的例外。
在我解释异常情况之前。有人对在WebSphere8.5中将JAX-WS服务作为OSGi包部署感到高兴吗?有很多关于在Karaf中执行此操作的资源,但我仅限于Websphere

回答我自己的问题

从OSGi包中创建JAX-WS服务的方式与servlet和REST服务不一样,这似乎是一种情况。

编辑: 以上说法不正确,请看上面的帖子。尽管SCA的服务似乎是用Axis2而不是CXF实现的,但这个答案的其余部分仍然适用于OSGi和SCA

支持的是使用SCA将OSGi服务公开为SOAP服务

本答案的其余部分假设:

您有一个OSGi应用程序,其中一个捆绑包通过blueprint.xml公开您希望通过SOAP公开的服务。 您拥有没有SCA工具的Eclipse IDE。 您拥有Eclipse IDE和Websphere工具,为您提供OSGi工具 您有权访问WAS控制台web应用程序 这些是通过soapweb服务访问服务所需的步骤

准备OSGi应用程序

在OSGi应用程序项目的APPLICATION.MF中,使用APPLICATION ExportService标头标记服务接口: 应用程序导出服务:service.ExternalService 在服务的OSGi捆绑包的blueprint.xml文件中,添加属性,例如:

将项目导出为EBA 准备SCA工件

创建具有以下结构的Java项目 /服务组合 /META-INF/sca-contribution.xml

sca-contribution.xml可以如下所示:

service.composite可以如下所示:

将项目导出为jar

通过WAS控制台部署整个批次

创建新的空BLA 应用程序->应用程序类型->业务级应用程序->新建

将EBA和SCA jar都部署为资产 应用程序->应用程序类型->资产->导入

首先将EBA和SCA jar添加到业务级应用程序的已部署资产中 应用程序->应用程序类型->业务级应用程序->您的应用程序->添加到“已部署资产”下

你完了!您应该在服务器的日志中看到端点url

资源:


询问您的IBM支持代表不是更好吗?