我想构建一个由几个Web服务构成的系统,它通过Servicemix交换SOAP消息。这些WS不是本地的,但它们是远程的。所以我的想法是将Servicemix作为服务本身提供,所有其他人都会向它发送消息。 Servicemix将向正确的服务提供肥皂消息,记录并通知交付成功/失败。
这可行吗?这是Servicemix的正确用法吗?我找不到这个配置的好例子或教程。
我可以使用Maven原型轻松地从wsdl开始构建WSs
servicemix-cxf-wsdl-first-osgi-bundle
它们可以部署在Servicemix上......但它们都是本地的!我想让远程WS通过共享总线交换消息。 谢谢
答案 0 :(得分:2)
当然,这基本上是ServiceMix的模式。您在调解和路由方面寻找的大部分内容都是通过Apache Camel实现的。您需要在单独的Web容器(例如Tomcat或Jetty)中托管远程Web服务。接下来,您将服务端点实现为部署到ServiceMix的OSGi包。这些OSGi包暴露了您的服务接口。当SOAP请求进入OSGi bundle端点时,您可以使用Camel路由规则将SOAP消息路由到适当的远程Web服务端点。
对于某些示例,我建议查看JBoss Fuse文档:
http://www.jboss.org/products/fuse/resources/
Fusesource曾经是ServiceMix的支持组织;然而,他们已被RedHat收购。您将在ServiceMix文档本身上找到更好的文档和示例。
答案 1 :(得分:1)
使用Apache Camel进行路由,转换等:
Camel是智能路由和中介引擎,它实现了企业集成模式,旨在用于像ServiceMix这样的ESB,像ActiveMQ这样的Message Broker或者像智能终端或像CXF这样的Web服务框架。 ServiceMix是一个ESB,一个JBI容器和一个集成平台。所以他们都满足了不同的需求,尽管它们都旨在共同发挥作用。