Hallo,
ich versuche gerade mein funktionierendes App auf EJB + SessionBeans umzustellen, mit Hilfe von Annotations.
Beim Programmstart wird eine bestehende Database mit findAll() ausgelesen. Und dort tritt dann eine NPE auf.
Habe ich etwas vergessen bei der Umstellung?
Im Grunde muss ich doch nur die Annotations @EJB und @Stateless setzen?
Danke
ich versuche gerade mein funktionierendes App auf EJB + SessionBeans umzustellen, mit Hilfe von Annotations.
Beim Programmstart wird eine bestehende Database mit findAll() ausgelesen. Und dort tritt dann eine NPE auf.
Habe ich etwas vergessen bei der Umstellung?
Im Grunde muss ich doch nur die Annotations @EJB und @Stateless setzen?
Danke
Java:
public class Controller {
@EJB
private PersonDao personDao;
//business methods
}
@Stateless
public class PersonDao {
@PersistenceContext
private EntityManager em;
public List<Person> findAll() {
return em.createQuery("select p from Person p").getResultList(); //<- NPE
}
/* not needed anymore if EJB implemented
public HolidayModelDao() {
emf = Persistence.createEntityManagerFactory("TestDB");
em = emf.createEntityManager();
}*/
}
Java:
java.lang.RuntimeException: java.lang.NullPointerException
at org.eclipse.core.internal.databinding.beans.BeanPropertyHelper.readProperty(BeanPropertyHelper.java:106)
at org.eclipse.core.internal.databinding.beans.BeanListProperty.doGetList(BeanListProperty.java:54)
at org.eclipse.core.databinding.property.list.ListProperty.getList(ListProperty.java:56)
at org.eclipse.core.internal.databinding.property.list.SimplePropertyObservableList.getList(SimplePropertyObservableList.java:122)
at org.eclipse.core.internal.databinding.property.list.SimplePropertyObservableList.access$7(SimplePropertyObservableList.java:121)
at org.eclipse.core.internal.databinding.property.list.SimplePropertyObservableList$3.run(SimplePropertyObservableList.java:93)
at org.eclipse.core.databinding.observable.Realm$1.run(Realm.java:148)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.databinding.observable.Realm.safeRun(Realm.java:152)
at org.eclipse.core.databinding.observable.Realm.exec(Realm.java:170)
at org.eclipse.core.internal.databinding.property.list.SimplePropertyObservableList.firstListenerAdded(SimplePropertyObservableList.java:91)
at org.eclipse.core.databinding.observable.list.AbstractObservableList$PrivateChangeSupport.firstListenerAdded(AbstractObservableList.java:52)
at org.eclipse.core.databinding.observable.ChangeManager.addListener(ChangeManager.java:70)
at org.eclipse.core.databinding.observable.ChangeSupport.addListener(ChangeSupport.java:30)
at org.eclipse.core.databinding.observable.list.AbstractObservableList.addListChangeListener(AbstractObservableList.java:103)
at org.eclipse.core.databinding.observable.list.DecoratingObservableList.firstListenerAdded(DecoratingObservableList.java:75)
at org.eclipse.core.databinding.observable.ChangeManager.addListener(ChangeManager.java:70)
at org.eclipse.core.databinding.observable.list.DecoratingObservableList.addListChangeListener(DecoratingObservableList.java:48)
at org.eclipse.jface.databinding.viewers.ObservableListContentProvider$Impl.addCollectionChangeListener(ObservableListContentProvider.java:67)
at org.eclipse.jface.internal.databinding.viewers.ObservableCollectionContentProvider.setInput(ObservableCollectionContentProvider.java:199)
at org.eclipse.jface.internal.databinding.viewers.ObservableCollectionContentProvider.inputChanged(ObservableCollectionContentProvider.java:156)
at org.eclipse.jface.databinding.viewers.ObservableListContentProvider$Impl.inputChanged(ObservableListContentProvider.java:57)
at org.eclipse.jface.databinding.viewers.ObservableListContentProvider.inputChanged(ObservableListContentProvider.java:170)
at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:276)
at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1690)
at gui.MainWindow.initDataBindings(MainWindow.java:892)
at gui.MainWindow.createContents(MainWindow.java:623)
at org.eclipse.jface.window.Window.create(Window.java:431)
at gui.MainWindow.create(MainWindow.java:121)
at org.eclipse.jface.window.Window.open(Window.java:790)
at gui.MainWindow$23.run(MainWindow.java:833)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at gui.MainWindow.main(MainWindow.java:822)
Caused by: java.lang.NullPointerException
at session.PersonDao.findAll(PersonDao.java:58)
at session.Controller.getPersonList(Controller.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.eclipse.core.internal.databinding.beans.BeanPropertyHelper.readProperty(BeanPropertyHelper.java:100)
... 32 more
Status ERROR: org.eclipse.core.databinding code=0 Unhandled exception: java.lang.NullPointerException java.lang.RuntimeException: java.lang.NullPointerException
java.lang.RuntimeException: java.lang.NullPointerException
at org.eclipse.core.internal.databinding.beans.BeanPropertyHelper.readProperty(BeanPropertyHelper.java:106)
at org.eclipse.core.internal.databinding.beans.BeanListProperty.doGetList(BeanListProperty.java:54)
at org.eclipse.core.databinding.property.list.ListProperty.getList(ListProperty.java:56)
at org.eclipse.core.internal.databinding.property.list.SimplePropertyObservableList.getList(SimplePropertyObservableList.java:122)
at org.eclipse.core.internal.databinding.property.list.SimplePropertyObservableList.access$7(SimplePropertyObservableList.java:121)
at org.eclipse.core.internal.databinding.property.list.SimplePropertyObservableList$3.run(SimplePropertyObservableList.java:93)
at org.eclipse.core.databinding.observable.Realm$1.run(Realm.java:148)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.databinding.observable.Realm.safeRun(Realm.java:152)
at org.eclipse.core.databinding.observable.Realm.exec(Realm.java:170)
at org.eclipse.core.internal.databinding.property.list.SimplePropertyObservableList.firstListenerAdded(SimplePropertyObservableList.java:91)
at org.eclipse.core.databinding.observable.list.AbstractObservableList$PrivateChangeSupport.firstListenerAdded(AbstractObservableList.java:52)
at org.eclipse.core.databinding.observable.ChangeManager.addListener(ChangeManager.java:70)
at org.eclipse.core.databinding.observable.ChangeSupport.addListener(ChangeSupport.java:30)
at org.eclipse.core.databinding.observable.list.AbstractObservableList.addListChangeListener(AbstractObservableList.java:103)
at org.eclipse.core.databinding.observable.list.DecoratingObservableList.firstListenerAdded(DecoratingObservableList.java:75)
at org.eclipse.core.databinding.observable.ChangeManager.addListener(ChangeManager.java:70)
at org.eclipse.core.databinding.observable.list.DecoratingObservableList.addListChangeListener(DecoratingObservableList.java:48)
at org.eclipse.jface.databinding.viewers.ObservableListContentProvider$Impl.addCollectionChangeListener(ObservableListContentProvider.java:67)
at org.eclipse.jface.internal.databinding.viewers.ObservableCollectionContentProvider.setInput(ObservableCollectionContentProvider.java:199)
at org.eclipse.jface.internal.databinding.viewers.ObservableCollectionContentProvider.inputChanged(ObservableCollectionContentProvider.java:156)
at org.eclipse.jface.databinding.viewers.ObservableListContentProvider$Impl.inputChanged(ObservableListContentProvider.java:57)
at org.eclipse.jface.databinding.viewers.ObservableListContentProvider.inputChanged(ObservableListContentProvider.java:170)
at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:276)
at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1690)
at gui.MainWindow.initDataBindings(MainWindow.java:892)
at gui.MainWindow.createContents(MainWindow.java:623)
at org.eclipse.jface.window.Window.create(Window.java:431)
at gui.MainWindow.create(MainWindow.java:121)
at org.eclipse.jface.window.Window.open(Window.java:790)
at gui.MainWindow$23.run(MainWindow.java:833)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at gui.MainWindow.main(MainWindow.java:822)
Caused by: java.lang.NullPointerException
at session.PersonDao.findAll(PersonDao.java:58)
at session.Controller.getPersonList(Controller.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.eclipse.core.internal.databinding.beans.BeanPropertyHelper.readProperty(BeanPropertyHelper.java:100)
... 32 more
java.lang.RuntimeException: java.lang.NullPointerException
at org.eclipse.core.internal.databinding.beans.BeanPropertyHelper.readProperty(BeanPropertyHelper.java:106)
at org.eclipse.core.internal.databinding.beans.BeanListProperty.doGetList(BeanListProperty.java:54)
at org.eclipse.core.databinding.property.list.ListProperty.getList(ListProperty.java:56)
at org.eclipse.core.internal.databinding.property.list.SimplePropertyObservableList.getList(SimplePropertyObservableList.java:122)
at org.eclipse.core.internal.databinding.property.list.SimplePropertyObservableList.access$7(SimplePropertyObservableList.java:121)
at org.eclipse.core.internal.databinding.property.list.SimplePropertyObservableList$4.<init>(SimplePropertyObservableList.java:215)
at org.eclipse.core.internal.databinding.property.list.SimplePropertyObservableList.iterator(SimplePropertyObservableList.java:213)
at org.eclipse.core.databinding.observable.DecoratingObservableCollection.iterator(DecoratingObservableCollection.java:68)
at org.eclipse.core.databinding.observable.set.WritableSet.addAll(WritableSet.java:98)
at org.eclipse.core.internal.databinding.observable.masterdetail.DetailObservableSet.addAll(DetailObservableSet.java:160)
at org.eclipse.jface.internal.databinding.viewers.ObservableCollectionContentProvider.getElements(ObservableCollectionContentProvider.java:116)
at org.eclipse.jface.databinding.viewers.ObservableListContentProvider.getElements(ObservableListContentProvider.java:174)
at org.eclipse.jface.viewers.StructuredViewer.getRawChildren(StructuredViewer.java:1010)
at org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:917)
at org.eclipse.jface.viewers.StructuredViewer.getSortedChildren(StructuredViewer.java:1067)
at org.eclipse.jface.viewers.AbstractListViewer.inputChanged(AbstractListViewer.java:332)
at org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:280)
at org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1690)
at gui.MainWindow.initDataBindings(MainWindow.java:892)
at gui.MainWindow.createContents(MainWindow.java:623)
at org.eclipse.jface.window.Window.create(Window.java:431)
at gui.MainWindow.create(MainWindow.java:121)
at org.eclipse.jface.window.Window.open(Window.java:790)
at gui.MainWindow$23.run(MainWindow.java:833)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at gui.MainWindow.main(MainWindow.java:822)
Caused by: java.lang.NullPointerException
at session.PersonDao.findAll(PersonDao.java:58)
at session.Controller.getPersonList(Controller.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.eclipse.core.internal.databinding.beans.BeanPropertyHelper.readProperty(BeanPropertyHelper.java:100)
... 25 more