Я пытаюсь разработать очень простое приложение на основе работающего потока, создающего сущности в БД каждую секунду в JavaEE на сервере Glassfish4.Ввод EJB в автоматический таймер EJB возвращает null
Я использую автоматический таймер, где я вставляю EJB, управляющий постоянством.
Таймер Service является следующий:
@Singleton
@LocalBean
@Startup
public class UpdateEJB {
@EJB
MeasureEJB measureEjb;
@Schedule(second = "*/1", minute = "*", hour = "*", persistent = false)
public void doWork() {
measureEjb.create(new Measure());
}
}
Хотя EJB является:
@Stateless
public class MeasureEJB {
@PersistenceContext(unitName = "smarthomePU")
private EntityManager em;
public Measure create (Measure _measure) {
em.persist(_measure);
return _measure;
}
}
Платформа Entity
@Entity
public class Measure implements Serializable {
@Id
private String time;
private int[] temp;
private boolean[] water;
public int[] getTemp() {
return temp;
}
public void setTemp(int[] temp) {
this.temp = temp;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public boolean[] getWater() {
return water;
}
public void setWater(boolean[] water) {
this.water = water;
}
private static final long serialVersionUID = 1L;
public Measure() {
super();
}
public Measure(int[] _temp, boolean[] _water) {
temp = _temp;
water = _water;
time = "";
}
}
Но когда я пытаюсь использовать MeasureEJB в UpdateEJB приложение останавливается с NPE в методе создания. Что я делаю не так?
Проблема не в EntityManager, так как при отладке кода я вижу, что переменная measureEjb равна null. В любом случае я добавлю код Entity как можно скорее – sthor69