データベースのプロパティを管理するシングルトン クラスを実装しようとしています。ただし、データベース Bean を注入しようとすると nullPointerException が発生します。これが私のコードです:
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.ejb.EJB;
import javax.ejb.Stateless;
..
@Stateless
public class Properties {
public static volatile Properties instance;
private static Map<String, String> properties = new HashMap<String, String>();
@EJB(WHAT_TO_DO_HERE)
private DatabasePersisterLocal databasePersister;
public static Properties getInstance() {
if (instance == null) {
synchronized (Properties.class) {
if (instance == null) {
instance = new Properties();
}
}
}
return instance;
}
private Properties() {
System.out.println("starting");
System.out.println(databasePersister); //null
//initializing
}
}
プロジェクトを jar としてエクスポートしています。後で のインスタンスを取得しようとすると、それProperties
がstarting
印刷され、次にnullPointerException
. 他のプロジェクトから同じ EJB (DatabasePersisterLocal) を注入しようとしても、エラーは発生しません。私は何を間違っていますか?