Glassfish initialising Singleton豆回
質問
私はシングルトン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不約 が外Eclipse GFv3正常に動作しなかった事を再現ですか?eclipseApps/$projectName
を含まないEJBモジュールは、しかし eclipseApps/$projectName/WEB-INF/classses
).しかし残念といっていいのかもしれないバグのGlassFish Eclipseプラグイン(少なくとも、版ん。と思いますか多くの課題、問題追跡システムつながったりもするのだけれど。変なのでこのような大きなブロックします。
更新: だそして私も下EclipseとGlassFish v3.こんな全てのものの問題は、私が何らかの取得に失敗したプロジェクトを直接認識として"並列プログラミングモジュール"2.5いては、バージョンした初期設定2.3になったという、展開エラーにGFv3.以上の設定の私のプロジェクトが正しく(ファセットの設定2.5)を展開しい現代美術館などがあります。僕螺感しました。
他のヒント
この問題が発生します。
たとえばます:
<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でテストされます。