0

クラスで JAX-WS "WebService" アノテーションを使用して、その "WebMethod" を Web サービスとして公開しています。このクラスは、「/MyService」への呼び出しを処理するサーブレット クラスとして示されます。

基本的にはサーブレットであるため、このクラスのインスタンスは 1 回だけ作成され、基本的にはシングルトンであることが期待されます。このクラスのコンストラクターには、メンバー変数に割り当てるための EntityManagerFactory を作成するコードがあります。私が見ているのは、Web サービスへのすべてのクライアント要求に対してコンストラクターが呼び出されていることです。これは良くない。

ここで何が起こっているか知っている人はいますか?誰かが私が尋ねようとしていることを理解していますか? :)

ありがとう。

4

2 に答える 2

0

あなたのトピックはSLSBに言及していますが、これは「ステートレスセッションBean」であると思います。Java EE 5 では、Stateless Session Bean から Web サービスを作成するか、クラスにアノテーションを付けて、準拠する Web コンテナーにデプロイされたときにランタイムがそれを Web サービスとして公開することができます。

どちらの場合も、これらはどちらもサーブレット自体ではなく、サーブレットのライフサイクルに従いません。

于 2009-09-25T16:57:44.710 に答える
0

基本的にはサーブレットであるため、このクラスのインスタンスは 1 回だけ作成され、基本的にはシングルトンであることが期待されます。

コンテナ次第です。あなたはそれに頼ることはできません。

手間のかかる作業をすべて行う真のシングルトン (単純な Java クラス) を作成し、それをサーブレットから呼び出します。

于 2009-09-25T18:04:27.043 に答える