2016-08-25 4 views
0

jaxws 2.2仕様では、ののメソッドは、excludeexcludeというアノテーションを持たないため、wsdl:operation要素にマップする必要があります。jax-wsのデフォルトでは、voidの戻りメソッドと例外をスローしないメソッドは、一方向の操作と見なされますか?

また、この方法はoneway operation Sにマッピングされてはならない(それはvoid戻り値の型と無exceptionを持っている場合でも)OneWay注釈を持っていない場合javax.jws.OneWayで注釈を付けだけの方法は、oneway operationでなければならないと言います。

voidの返信方法がexceptionに設定されていないと、デフォルトでoneway operationになることはありません。これは別の問題を引き起こす。 void戻り値の型があり、exceptionでないメソッドがoneway operationの場合、なぜOneWayアノテーションが必要なのでしょうか?空戻り値の型と例外なく

答えて

1

いずれかの方法で一方向操作です

これは真実ではありません。デフォルトでは、void戻り値の型と宣言されたchecked例外メソッドは標準的な操作ではありません。

デフォルトでは、サービスを呼び出すクライアントスレッドは、サーバーからの応答を受信するまで待機します(またはクライアントはタイムアウトします)。標準的なWebサービス操作は、void戻り型であっても、Webメソッド操作を処理した後にSOAP応答(空の本体)で応答します。デフォルトでは同期呼び出しです。

たとえば、void型WebMethodに時間のかかる操作があると、サービスクライアントはサーバー側のすべての処理が完了するまで待機します(タイムアウトが発生していないと仮定します)。または、障害発生時にサーバーからRuntimeExceptionを受け取ります。これは@OneWay操作では発生しません。

@OneWayメソッドの場合、それらは非同期に呼び出されるため、クライアントスレッドはサーバWebメソッド操作の終了を待たずに直ちに処理を進めます。

関連する問題