7

軸を使用して Web サービス アーティファクトを自動生成し、それをアプリケーション内で使用するオブジェクトに変換します。これを行うための賢明なパターンはありますか? 軸で作成されたオブジェクトからオブジェクトを出力するための変換メソッドを作成しました。また、軸オブジェクトをアプリケーション オブジェクトに変換する変換クラスの中間セットを作成した場合もあります。これにアプローチする一般的な方法はありますか?

4

5 に答える 5

3

私が正しく理解していれば、Axis WSDL2Java機能を使用してWSDLからコードを生成し、それを既存のアプリケーションオブジェクトモデルにマップする必要があります。その場合、JiBXバインディングでAxisを使用することを検討することをお勧めします。

于 2008-11-05T02:34:19.723 に答える
1

「生成された軸」をビジネス オブジェクトに変換することが目標の場合は、オブジェクトの実装から別の実装にコピーするための「マッパー」であるdozer ( http://dozer.sourceforge.net/ ) などのツールを試すことができます。使い方がわかりません (xml ファイルで翻訳を説明する必要があると思います) が、動作するはずです (私自身は使用しませんでしたが、一部の同僚が同様の目的で使用しており、動作しているように見えました)。

于 2008-11-06T16:00:21.360 に答える
1

常識的な方法があると思います。心を少し抽象化し、レイヤーを想像してみてください。

  1. 基本的な IO と、おそらく基本的なセッション機能や資格情報を含むライブラリを取得します。
  2. 変換レイヤーを作成します。ここに、アプリケーション依存オブジェクトを構築するために必要なすべてのコードを配置します。このレイヤーを、アプリケーション用の優れたインターフェイスで仕上げます。

変換レイヤーは複数の方法で実行できます。

  • 変換が簡単な場合は、1 番目のレイヤーと 2 番目のレイヤーをほぼ 1 つに結合できます。POJOS を拡張して、変換機能を提供します。これにより、少なくとも 2 つのコード、自動生成されたコードと拡張機能 + 機能が提供されます。

  • 複数の小さなアプリケーション オブジェクトに変換する必要がある巨大な XML について話している場合。わかりました、最初のレイヤーをそのままにして、2番目の使用で:

    • コマンド パターン: 変換をカプセル化します。
    • 変換も乱雑になる場合:責任の連鎖は、変換のツリーを生成するのに役立ちます。

これが役立つことを願っています

于 2008-11-07T07:41:09.370 に答える
0

過去にも同様の問題に遭遇しました。最近、Axis にアーティファクトを生成させた複​​雑な Web サービスの場合、「MaintainOffersRequestTypeReqReqDataMaintEnhancementCancellationReason」のような名前の 157 個の Java クラスができあがりました。

最終的に、あなたの最後のアイデアと同様に、これらの Axis によって生成されたオブジェクトをビジネス オブジェクトに変換するクラスを作成しました。それが最善の方法かどうかはわかりませんが、確かに実行可能な解決策です。

于 2008-10-27T18:59:48.387 に答える
0

Axis 1 を使用している場合、ビジネス クラスは Axis データ クラスと同じ修飾名を持ち、他のいくつかの条件が適用されます。設定を必要とせずに、Axis のものの代わりにビジネス クラスを使用することができます。私たちはそれを何度も行ってきました。

Axis 2 では、ADB (デフォルト) 以外のデータ バインディングで問題が発生したため、Apache Commons Beanutils を広範囲に使用して、Axis クラスとビジネス クラスの間でデータをコピーします。

于 2008-11-05T14:00:29.653 に答える