多数の 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 が使用するプロキシに何らかの方法で「チェーン」する (そして一般的なキャッシュを実行する) か、キャッシュを実行する独自の注釈を作成できますか?