Verwenden von CDI in einem Singleton-Muster

Ich versuche, ein Logger-Objekt in eine Klasse einzufügen, die nach einem Singleton-Ansatz implementiert wird.

Der Code sieht fast so aus:

Logger Klasse:

public class LoggerFactory {
    @Produces 
    public Logger getLogger(InjectionPoint caller){
        return Logger.getLogger(caller.getMember().getDeclaringClass().getName());
    }
}

Dann erstelle ich eine Klasse, die Logger benötigt und das Singleton Pattern implementiert:

public class MySingleton{
    @Inject
    private Logger logger;

    private MySingleton instance;

    /*
     * Private constructor for singleton implementation
     */
    private MySingleton(){
        logger.info("Creating one and only one instance here!");
    }

    public MySingleton getInstance(){

        if(instance == null) {
            instance = new MySingleton();
        }

        return instance;
    }

}

Wenn ich den Code (auf Glassfish 3.1.2.2) ausführe, erhalte ich eine NPE, sobald ich versuche, den Logger zu verwenden. Was mache ich falsch (beans.xml Datei ist vorhanden)? Ich habe auch versucht mit@Inject mit einer Setter-Methode für dieLogger Objekt, aber ohne Glück.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage