16.2.4 javax.jws.Onewayアノテーション
javax.jws.Onewayアノテーションは,Webサービスでone-wayオペレーションを使用する場合に指定します。javax.jws.OnewayアノテーションをアノテートしたWebサービス実装クラスのメソッドは,入力メッセージだけを持ち,出力メッセージは持ちません。
javax.jws.Onewayアノテーションを使用したマッピング例を次の図に示します。
javax.jws.OnewayアノテーションをアノテートしたWebサービス実装クラスのメソッドは,次に示す条件を満たす必要があります。
-
戻り値の型はvoidを指定してください。
-
BAREスタイルのWebサービスの場合,SOAPヘッダ以外のinパラメタを一つだけ指定してください。
-
javax.jws.WebParamアノテーションのMode要素を使用する場合,javax.jws.WebParam.Mode.INを使用してください。
-
Webサービス実装クラスのメソッドで,java.lang.RuntimeExceptionとjava.rmi.RemoteExceptionおよびそのサブクラス以外の例外が,一つも宣言されていないことを確認してください。
-
引数の型をHolder型で指定しないでください。
javax.jws.Onewayアノテーションを使用するときの注意事項について説明します。
-
Webサービス実装クラスで,javax.jws.Onewayアノテーションとjavax.xml.ws.soap.Addressingアノテーションを併用しないでください。one-wayオペレーションはレスポンスメッセージが存在しませんが,アドレッシング機能はレスポンスメッセージの送信先を指定します。このため,同時に使用した場合の動作は保証されません。
-
one-wayオペレーションは応答のSOAPメッセージが存在しないため,Webサービス実装クラスのjavax.jws.Onewayアノテーションをアノテートしたメソッドの実装では,例外を明示的にスローしないようにしてください。