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