Fuse ESB 学习笔记(三)集成-WebService

红薯 发布于 2010/09/28 16:47
阅读 2K+
收藏 4

Fuse ESB核心是一个ESB产品,你可以把开发使用OSGi Bundle封装后的WebService或OSGi作为服务直接部署到ESB,但更多的应用模式是纯粹将其作为一个总线,对其它系统所曝露出的服务进行 绑定集成(binding component)。应用系统之间不再采用点到点的链接方式,而是全部接入到ESB,由ESB对服务进行路由和供给。

具体的集成方式如下:

  1. 通过Maven建立artifact项目,类型为servicemix-project-root。
  2. 建立Maven模块,最简单的方案是采用cxf-bc,创建类型为servicemix-cxf-bc-service-unit。
  3. 创建之后,会自动依据模板建立起项目结构,把需要集成的WebService的wsdl定义放到src/main/resources下,修改 其"wsdl:service"节点,把名称修改为XXXServiceProxy,再把“wsdl:port”子节点修改为“XXXXProxy”。修 改“soap:address”节点,把代理地址写进去,例如:http://localhost:8081/ServiceName。需要注意的是,这 里写的端口号部署后将由Fuse ESB自动建立监听并提供服务。
  4. 在xbeans.xml中建立一个命名空间,注意该命名空间需要和原始的webservice的wsdl中定义的targetNameSpace 保持一致。例如:xmlns:ws="http://payments.ws.topnet.com/"。之后创建cxfbc:consumer和 cxfbc:provider节点,具体定义参阅这里
  5. 至此,su(Service-Unit)的工作完成。再创建一个Maven模块,类型为:servicemix-service-assembly。
  6. 在新创建的这个sa(servicemix-service-assembly)中加入上边su的项目依赖。如果需要发布多个su,可以在这里添加多个依赖。
  7. 之后打包主项目,把sa中target下生成的jar包复制到Fuse ESB的deploy目录下。该jar包中其实就是打包了多个su的zip包。
  8. 进入ESB的控制台,osgi:list可以看到新部署进去包已被激活,此时就可以使用步骤4中定义的地址进行服务了。

如果想要避免spring配置文件中的地址依赖,可以引入spring的PropertyPlaceholderConfigurer,将配置文件指向到包外界。以方便部署。

加载中
0
x
xiaoxiami12345

请问有没有ESB产品是基于C++的啊?谢谢

返回顶部
顶部