Ich muss Ereignisse von einigen ejb (Staatenlos und Singleton) mit Abhängigkeitsinjektion auslösen. Ich benutze nicht Spring, Guice etc. Das Problem ist, dass ich NPE in einer der Bohnen beim Aufruf der Methode durch getInstance() erhalten. Hier ist der Code-Schnipsel:Singleton CDI @Inject Nullzeiger Ausnahme
@Stateless
@LocalBean
public class ControllerStartStop {
@Inject
private Event<SomeWebMessage> webEvent;
public String startCircle(String passwordP, String passwordH) {
.........
String res = "some msg";
webEvent.fire(new SomeWebMessage(res, 0)); // this works fine
MainDay.getInstance().startDay(); // NullPointerException
hier MainDay Singletons ist:
@Singleton
public class MainDay {
private static final MainDay mDay = new MainDay();
public static MainDay getInstance() { return mDay ; }
@Inject
private Event<SomeWebMessage> webEvent;
public void startDay() {
String s = new String("MainDay");
webEvent.fire(new SomeWebMessage(s,0)); // NullPointerException
beans.xml ist in META-INF:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
version="1.1" bean-discovery-mode="all">
</beans>
Es gibt keine NPE ist, wenn ich Ereignis ausgelöst von ein Aufruf der statischen Methode wie MainDay.initDS(), oder wenn Methode StartDay() durch einen Planer zu (@Schedule (h = "", minute = "", zweite aufgerufen = "/10") *. Ich habe keine Ahnung, was der Grund ist
Danke, Thomas! Sein klar jetzt und es funktioniert :) – Buch