3

通常のSOAPWebサービスとして公開しているインターフェイスがあります。インターフェイスの1つの方法は、クライアントがファイルをサーバーに送信し、サーバーがファイルを処理して結果ファイルを返すことです。ファイルの処理には時間がかかる場合があるため、このメソッドの非同期呼び出しを使用することをお勧めします。私は次の流れについて考えました:

クライアントは非同期メソッドを呼び出し、添付ファイル(MTOM)を使用してファイルを送信します。サーバーがファイルを受信すると、ファイルが受信され、まもなく処理されることを示す応答がクライアントに返送されます。ファイルが処理されると、処理されたことを示す応答がクライアントに返送され、結果ファイルが添付ファイルとしても応答に返されます。

CXFでSOAPを使用することは可能ですか?

ありがとう

4

3 に答える 3

2

Callbackのアプローチを使用できますAsynchronous InvocationModel

コールバックアプローチ-この場合、リモート操作を呼び出すには、パラメーターの1つとして(javax.xml.ws.AsyncHandlerタイプの)コールバックオブジェクトへの参照を受け取る別の特別なメソッドを呼び出します。応答メッセージがクライアントに到着するたびに、CXFランタイムはAsyncHandlerオブジェクトをコールバックして、応答メッセージの内容をクライアントに提供します。

詳細については、以下から入手できます。

Apache CXF

于 2012-06-04T06:45:28.120 に答える
1

クライアントの生成に WSDL2Java などのツールを使用する場合は、非同期クライアントの生成を選択することもできます。サービス操作とサービスの例外ごとに空のメソッドを持つコールバック ハンドラが生成されます。その後、これらのメソッドを実装して、応答を受信したときに実行するアクションを設定できます。非同期呼び出しが完了すると、新しいスレッドが開始されることに注意してください。

于 2012-06-04T06:59:29.377 に答える
0

はい。ファイルを受け取ったら、リクエストIDをクライアントに返し、サーバー側で処理を開始して、さまざまな処理状態を維持できます。クライアントは異なる間隔で戻ることができ、処理ステータスまたは完了した場合は出力を受け取ります。

于 2012-06-04T06:43:59.857 に答える