0

非プリミティブ データまたは単純な POJO を受け入れる操作との複雑なインターフェイスを持つコンポーネントがあります。

サービス コンシューマが WSDL を使用して問題なくクラスを生成できるように、このコンポーネント インターフェイスを Java および非 Java クライアントで使用できる標準の Web サービス インターフェイスに変換するためのベスト プラクティス (方法/方法論) は何ですか。

そのまま使える?そうでない場合、操作の動作に影響を与えずに最小限の変更を行う方法はありますか?

コンポーネント インターフェイスには、次のような操作があります。

/** This is asynchronous method that needs to callback the ResultHandler
    interface which has to be implemented by the component user to handle
    operationOne result **/
public void operationOne(int id, ResultHandler handler);

/** I think there is no problem with the following operation for Web Services,
    when using data contracts. Correct me if I’m wrong! **/
public String operationTwo(int id, MyObject obj);

ResultHandler インターフェース:

/** Note that this handler interface contains InputStream
    and Exception as parameters for the handling methods **/ 
interface ResultHandler {
    void onComplete(InputStream is); 
    void onFailure(IOException ioEx); 
}
4

2 に答える 2

0

オブジェクトは複雑な WSDL タイプに変換されるため、webmethods でオブジェクトを使用できますが、これはある程度しか実行できないことに注意してください。ビジネス業務を実行するために使用する複雑なタイプではなく、WSDL/コード生成の利点を得るために、データ構造を送信するための単純な POJO が必要です。また、SOAP Web サービスで REST/JSON を使用することをお勧めします。

アップデート:

Web サービスを効果的にテストする唯一の方法は、Web サービスで行うすべての呼び出しに対してモークを作成することです。

Moq - Web サービス呼び出しをモックする方法は?

于 2013-04-01T13:39:17.427 に答える
0

提供された引数を使用してコンポーネントを呼び出し、完全な応答を返すメソッドを作成する必要があります。最良の結果を得るには、メソッドに副作用があってはなりません。

次に @WebService および @WebMethod アノテーションを追加し、Endpoint.publish(...) を使用して、その Web サービスを公開する小さなスタンドアロン アプリケーションを作成します。Java 6 の JAX-WS スタックは、これから WSDL を自動生成できます。

これを行うための完全なチュートリアルについては、http://java.dzone.com/articles/jax-ws-hello-worldを参照してください。

于 2013-04-02T07:50:24.040 に答える