2013-05-01 67 views

回答

2

那么,这里有一个方法来做到这一点。这可能不是最好的方法(评论欢迎...),但在任何情况下都是如此。

显然,您的Web服务的wsdl以及执行业务逻辑的代码。

  1. 创建一个行家模块用于使用cxf-codegen-plugin(对于generated-sources)和maven-bundle-plugin(对于束配置和OSGI布线)

  2. 在你blueprint.xml定义web服务的<camel-cxf:cxfEndpoint id="abc" ...其中serviceClass是您的生成端点接口类。

  3. 定义一个<camel:camelContext id="abc" ...>,其中<camel:routeBuilder ref="xyz"/>指的是您定义的一个bean,其扩展为RouteBuilder

  4. 现在我们在延伸RouteBuilder的课堂上工作。然后,configure()方法应该设置与Web服务中每个操作对应的骆驼路由。使用java 流利构建器语法

下面是一口流利的建设者语法的例子:

from("direct:myOperation") 
      .routeId("myOperation") 
      .onException(SomeException.class).doSomething().doSomethingElse(); 
      .validate(/* an expression */) 
      .beanRef("myBusinessLogicBean", "someMethod") 
      .convertBodyTo(MyResult.class) 

基本上,我们采取了路由层,并重新写它作为一个骆驼的路线,而业务逻辑被称为通过beanRef - 在blueprint.xml中配置bean和它的依赖关系(如datasources/dao's或persistence.xml)。

您可以在流利的构建器语法中做一些非常好的事情 - 只需google camel cxf并浏览大量示例。您还可以访问所有EIP(企业集成模式)。

你必须做的最后一件事是定义一个feature.xml它使用<bundle>,并定义正确的<feature>依赖关系(例如camel-cxfcamel-jpa等)。

我希望这可以帮助你开始。

+0

好的答案......应该被接受。 – Namphibian 2014-05-20 03:25:01