bboss发布apache cxf 2.7.6服务和定义客户端服务实例可能产生冲突解决办法

简介: bboss发布apache cxf 2.7.6服务和定义客户端服务实例放到一起可能会产生冲突并导致服务发布失败,本文介绍这个冲突的解决办法。 首先介绍一下冲突现象,假设在bboss mvc的xml配置文件中定义一个控制器,并为这个控制器注入通过org.
bboss发布apache cxf 2.7.6服务和定义客户端服务实例放到一起可能会产生冲突并导致服务发布失败,本文介绍这个冲突的解决办法。

首先介绍一下冲突现象,假设在bboss mvc的xml配置文件中定义一个控制器,并为这个控制器注入通过org.apache.cxf.jaxws.JaxWsProxyFactoryBean创建的一个服务客户端实例:
<properties>
   <property name="/salary/*.page" class="org.frameworkset.hrm.SalaryControler" 
      f:salaryService="attr:salaryServiceClient"/> 
   <property name="salaryServiceClient" factory-class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean" 
     factory-method="create" f:serviceClass="org.frameworkset.web.ws.SalaryService"
     f:address="http://localhost:8080/bboss-mvc/cxfservices/salaryServicePort"/> 
</properties> 


同时通过以下配置在bboss mvc中发布一个cxf webservice服务:
<property name="rpc.webservice.RPCCall"
  singlable="true"
  ws:servicePort="RPCCallServicePort"
class="org.frameworkset.spi.remote.webservice.RPCCall"/> 


由于bboss mvc在发布webservice服务之前会先加载所有的mvc 控制器,这样就会先通过org.apache.cxf.jaxws.JaxWsProxyFactoryBean创建salaryServiceClient客户端实例,同时也会调用org.apache.cxf.BusFactory实现类创建cxf的服务总线org.apache.cxf.Bus的实例,cxf 2.7.6 jar包默认配置了Spring提供的BusFactory子类,bboss中并没有引入Spring的BusFactory子类,肯定创建不起来,所以会导致服务客户端salaryServiceClient创建失败,由于BusFactory只会创建一次,所以即使后续bboss在发布cxf服务强制指定了cxf默认提供的类org.apache.cxf.bus.CXFBusFactory,也无法将服务正确地发布到cxf引擎中。
为了解决上述问题,只需要修改cxf-2.7.6.jar包中META-INF\services目录中的文件
org.apache.cxf.bus.factory内容为:
org.apache.cxf.bus.CXFBusFactory


img_d56bb23cfea3045723e9e1846234bec7.gif

即可(org.apache.cxf.bus.CXFBusFactory是cxf默认提供的org.apache.cxf.BusFactory实现类)。同时,对bboss发布cxfwebservice服务机制进行改进,在加载所有mvc控制器之前先发布cxf webservice服务。这样上述的冲突就得到彻底解决。

参考文档:
bbossgroups webservice引擎使用方法

目录
相关文章
|
1月前
|
运维 Linux Apache
Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
22 2
|
1月前
|
域名解析 Linux Apache
Linux Apache服务详解——虚拟网站主机功能实战
Linux Apache服务详解——虚拟网站主机功能实战
33 5
|
1月前
|
Linux 应用服务中间件 Apache
Linux Apache服务详解——Apache服务基础知识
Linux Apache服务详解——Apache服务基础知识
33 2
|
2月前
|
前端开发 Java 数据库连接
Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-maven-3.9.3-bin)
Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-maven-3.9.3-bin)
33 0
|
4天前
|
Java API Apache
ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
【4月更文挑战第11天】ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
23 11
|
1月前
|
Web App开发 存储 Linux
Linux Apache服务详解——Apache服务访问控制
Linux Apache服务详解——Apache服务访问控制
328 7
|
1月前
|
存储 SQL 消息中间件
Apache Hudi:统一批和近实时分析的存储和服务
Apache Hudi:统一批和近实时分析的存储和服务
30 0
|
1月前
|
存储 Apache
一文彻底理解Apache Hudi的清理服务
一文彻底理解Apache Hudi的清理服务
33 0
|
1月前
|
运维 Linux 网络安全
Linux Apache服务详解——用户个人主页实战
Linux Apache服务详解——用户个人主页实战
21 1
|
2月前
|
Java API Apache
Apache CXF生成WebService的客户端
Apache CXF生成WebService的客户端

热门文章

最新文章

推荐镜像

更多