0

ビジネスアプリケーションを Fuse ESB に統合する方法に本当に行き詰まっています。特に - Web サービス機能。いくつか質問があります -

1) Fuse ESB で blueprint.xml を Web サービスとして「ラップ」し、ビジネス アプリケーションから呼び出すことはできますか?

2) Fuse ESB を使用して、既存の機能を Web サービスとして公開し、呼び出すにはどうすればよいですか?

私を助けることができるかもしれないFuseの知識を持っている人に感謝します!

4

1 に答える 1

2

さて、ここにそれを行う1つの方法があります。それは最善のアプローチではないかもしれません (コメントを歓迎します...) が、いずれにせよここにあります。

明らかに、Web サービスの wsdl と、ビジネス ロジックを実行するコードがあります。

  1. cxf-codegen-plugin( for generated-sources) およびmaven-bundle-plugin( for bundle config および OSGI ワイヤリング)を使用して、Web サービス用の Maven モジュールを作成します。

  2. あなたのblueprint.xml定義<camel-cxf:cxfEndpoint id="abc" ...serviceClassは、生成されたエンドポイント インターフェイス クラスはどこにありますか。

  3. 拡張する定義した Bean を参照する a を使用して a を定義し<camel:camelContext id="abc" ...>ます。<camel:routeBuilder ref="xyz"/>RouteBuilder

  4. を拡張するクラスで作業します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-cxfcamel-jpaなど) を定義する必要があります。

これがあなたが始めるのに役立つことを願っています.

于 2013-06-04T07:32:21.640 に答える