2013-05-01 53 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