1

多数の Web サービスを公開するアプリケーション サーバーがあります。JSFアプリケーションでこれらのWebサービスを使用してユーザーインターフェースを提供する側でTomcatを実行しています。jaxws が Web サービスとの通信に使用するプロキシ クラスを返すメソッド「getWebservice()」を持つ Bean があるとします。これにより、最小限の労力で Web サービスとやり取りできます。wsimport を使用して生成し、#{myBean.webservice.myProperty} などを使用します。

ただし、ご覧のとおり、公開されたメソッドを再利用する場合、これには多くの Web サービスの対話が必要になります。私たちのユースケースでは、少なくとも @RequestScoped Bean の期間中、ほとんどのメソッドはかなり静的であるため、ほとんどのメソッドの相互作用は、呼び出されたら (少なくとも 1 つの要求に対して) キャッシュする必要があります。

現在、私たちのセットアップは Bean でラッパー サービスを作成することであり、各ラッパーはまったく同じことを行います。

if (methodResponse == null)
     methodResponse = getWebservice().getMethod();
return methodResponse;

これはすぐに非常に面倒になることがわかります。キャッシングのためにjaxwsメソッドに注釈を付ける方法はありますか? または、インターフェイスに基づいて独自のプロキシ クラスを生成し、それを jaxws が使用するプロキシに何らかの方法で「チェーン」する (そして一般的なキャッシュを実行する) か、キャッシュを実行する独自の注釈を作成できますか?

4

1 に答える 1

1

WebサービスクライアントプロキシオブジェクトのProxy周囲に別のキャッシュを作成し、メソッド呼び出しの結果をキャッシュするを提供することができます。InvocationHandler

このブログ投稿をチェックして、完全なステップバイステップの説明を確認し、サンプルコードをダウンロードしてください。

于 2012-06-20T10:45:49.000 に答える