質問

私はシングルトンejbいるといってもinitialisedます。わからないのはなぜでcompletly defentingのシングルトン豆類の調査を実施しているのは、同じ伝えていきます。助りますようお願い申し上げます。ご覧のという静的booleanを防ぐため、複数のトの再計算なることが必要です。

Bean:

@Singleton 
@Startup
public class DataModelBean implements DataModelBeanLocal {

   private static Logger log = Logger.getLogger(DataModelBean.class.getName());

   @PostConstruct
   public void init(){
      log.info(this);           
   }
}

ログ出力のスニペット:

2010-02-17 16:06:13,670 INFO  [AutoDeployer        :DataModelBean       ] com.xxx.xxx.datamodel.DataModelBean@117843d
2010-02-17 16:06:14,233 INFO  [AutoDeployer        :DataModelBean       ] com.xxx.xxx.datamodel.DataModelBean@62b9d3

で作成2豆!!それとも組みを導入し、アプリ。

ちなみに私が使っていglassfish v3は、この成熟したねがいします。どちらを使うべき.phpがv2で増えたファイルまたは何か?思いの?

役に立ちましたか?

解決

以下のシングルトン:

@Singleton
public class MasterDataCache 
{
    private final static Logger logger = LoggerFactory.getLogger(MasterDataCache.class);

    private Map cache;

    @PostConstruct
    public void initCache() {
        logger.debug("initCache()");
        this.cache = new HashMap();
    }

    public Object get(String key){
        return this.cache.get(key);
    }

    public void store(String key,Object value){
        this.cache.put(key, value);
    }
}

以下のサーブレット:

@WebServlet(name="SingletonTester", urlPatterns={"/SingletonTester"})
public class SingletonTester extends HttpServlet {

    @EJB
    MasterDataCache masterDataCache;

    @Override
    public void init(){
     masterDataCache.store("startup", new Date());
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        try {
            out.println("Startup time: " + masterDataCache.get("startup") );
        } finally {
            out.close();
        }
    }
}

パッケージとしての戦争として作用した場合、展開"手動"下GFv3.でも配細として作用していると考えられることをボタンひの initCache は一度のみ)。 私だけの問題の展開に失敗した下でのEclipse(GFv3不約 eclipseApps/$projectName を含まないEJBモジュールは、しかし eclipseApps/$projectName/WEB-INF/classses).しかし残念といっていいのかもしれないバグのGlassFish Eclipseプラグイン(少なくとも、版ん。と思いますか多くの課題、問題追跡システムつながったりもするのだけれど。変なのでこのような大きなブロックします。 が外Eclipse GFv3正常に動作しなかった事を再現ですか?

更新: だそして私も下EclipseとGlassFish v3.こんな全てのものの問題は、私が何らかの取得に失敗したプロジェクトを直接認識として"並列プログラミングモジュール"2.5いては、バージョンした初期設定2.3になったという、展開エラーにGFv3.以上の設定の私のプロジェクトが正しく(ファセットの設定2.5)を展開しい現代美術館などがあります。僕螺感しました。

他のヒント

ejb-jar.xmlのEJB名は、EJBクラス名に等しくないとき、

この問題が発生します。
たとえばます:

<ejb-name>MySingletonBean</ejb-name>
<ejb-class>ru.rozge.MyTestSingletonBean</ejb-class>
この場合、GFレジスタ異なるJNDI名を持つ2つのBeanで

( "javaの:グローバル/ MySingletonBean" との "Java:/ MyTestSingletonBeanグローバル")。そして、初期設定では、まず、2つのオブジェクトを作成 - MySingletonBeanと第二 - 。MyTestSingletonBeanを
また、あなたは、注射資源、GFのアクションのための@Resourceアノテーションを使用している場合:
1)GFは、第一の目的「MySingletonBean」とそれに正しく注入されたリソースを作成します。
2)GF)は、第二の目的「MyTestSingletonBean」を作成し、nullまたはデフォルト値に等しい(すべての注入されたリソースを注入に失敗した。
@Singleton @StartupコンボとGF 3.1ビルド12でテストされます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top