さて、ここにそれを行う1つの方法があります。それは最善のアプローチではないかもしれません (コメントを歓迎します...) が、いずれにせよここにあります。
明らかに、Web サービスの wsdl と、ビジネス ロジックを実行するコードがあります。
cxf-codegen-plugin
( for generated-sources
) およびmaven-bundle-plugin
( for bundle config および OSGI ワイヤリング)を使用して、Web サービス用の Maven モジュールを作成します。
あなたのblueprint.xml
定義<camel-cxf:cxfEndpoint id="abc" ...
でserviceClass
は、生成されたエンドポイント インターフェイス クラスはどこにありますか。
拡張する定義した Bean を参照する a を使用して a を定義し<camel:camelContext id="abc" ...>
ます。<camel:routeBuilder ref="xyz"/>
RouteBuilder
を拡張するクラスで作業しますRouteBuilder
。このconfigure()
メソッドは、Web サービスの各操作に対応するキャメル ルートを設定する必要があります。Java fluent ビルダー構文を使用します。
流暢なビルダー構文の例を次に示します。
from("direct:myOperation")
.routeId("myOperation")
.onException(SomeException.class).doSomething().doSomethingElse();
.validate(/* an expression */)
.beanRef("myBusinessLogicBean", "someMethod")
.convertBodyTo(MyResult.class)
基本的に、ルーティング レイヤーを取り、キャメル ルートとして書き直しました。ビジネス ロジックはbeanRef
、bean とその依存関係 (datasources / dao または persistence.xml など) が blueprint.xml で構成されている場所を介して呼び出されます。 .
流暢なビルダー構文で実行できる非常に優れた機能がいくつかあります。Googlecamel cxf
で検索して、多くの例を参照してください。また、すべての EIP (エンタープライズ統合パターン) にもアクセスできます。
最後に、feature.xml
を使用する<bundle>
を定義し、正しい<feature>
依存関係 ( camel-cxf
、camel-jpa
など) を定義する必要があります。
これがあなたが始めるのに役立つことを願っています.