# Kein EntityManager in Eclipse (!)



## dadom (12. Mrz 2008)

Hallo Zusammen,

ich habe ein kurioses Problem. Habe ein kleine WebProjekt, in dem ich auch auf eine embedded Derby Datenbank zugreifen will. Leider habe ich Probleme den EntityManager zu bekommen. Kurios aus Problem nur in Eclipse habe. Da ich das ganze nicht hinbekommen habe, hatte ich mein ganzes Project mal in NetBeans 6 zur anwendung gebracht, hab alle meine Projekt-Files in NetBeans importiert (ausser die persistence.xml, die hab ich mir von NetBeans generrieren lassen, weil die ja scheinbar probleme macht) Funktioniert nach einem Deploy von NetBeans alles wunderbar. Wenn ich exakt diesselben source-Files und xml-Files in mein Eclipse Projekt zum einsatz bringen, habe ich das Problem das die Laufzeitumgebung mir keine EntityManagerFactory zur Verfügung stellt`? Bekomme eine Nullpointer Exception wenn ich einen EntityManager generrieren lassen will

persistence.xml

```
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="DReminderPU" transaction-type="JTA">
<provider>oracle.toplink.essentials.PersistenceProvider</provider>
<jta-data-source>jdbc/dreminder</jta-data-source>
<properties>
<property name="toplink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
</persistence>
```

init der Factory (Servlet)

```
@PersistenceUnit
	private EntityManagerFactory factory;
```

NullPointer bei:

```
EntityManager em = factory.createEntityManager();
```

Wie gesagt, selben Sourcen wie in NetBeans, Netbeans=läuft, Eclipse=fehler ! Jemand gute Ideen (ausser bei NetBeans zu bleiben  )

Grüße
D


----------



## dadom (12. Mrz 2008)

Ich habe die beiden *.war Dateien verglichen, die beide IDS ausspucken: identisch. Also irgendwas scheint Eclipse beim deploy anders zu machen  hier noch mal beide WARs (zusammen gezippt) der beiden IDEs:

getupload.net/989WarFiles.zip

Hoffe jemand kann helfen


----------



## dadom (12. Mrz 2008)

Oki den ersten Fehler hab ich schon wieder, ich weiss nicht wo dieses versdammte Eclipse sich den Namen der PersistenzUnit merkt, aber er hatte die PU "default" nicht gefunden. Habs in der persistence.xml geändert und siehe da .... das alte Problem, kein Descriptor für meine Entity (nur nach einem Eclipse-Deploy)


```
[#|2008-03-12T16:12:27.954+0100|SEVERE|sun-appserver9.1|javax.enterprise.system.container.web|_ThreadID=17;_ThreadName=httpSSLWorkerThread-8080-0;_RequestID=6547fbd4-c661-4d2a-960d-e9cd78ab290d;|StandardWrapperValve[data]: PWC1406: Servlet.service() for servlet data threw exception
Local Exception Stack: 
Exception [TOPLINK-6007] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.QueryException
Exception Description: Missing descriptor for [class dd.entities.Dreminder].
Query: ReadAllQuery(dd.entities.Dreminder)
	at oracle.toplink.essentials.exceptions.QueryException.descriptorIsMissing(QueryException.java:419)
	at oracle.toplink.essentials.queryframework.ObjectLevelReadQuery.checkDescriptor(ObjectLevelReadQuery.java:412)
	at oracle.toplink.essentials.queryframework.ObjectLevelReadQuery.checkPrePrepare(ObjectLevelReadQuery.java:494)
	at oracle.toplink.essentials.queryframework.ObjectLevelReadQuery.checkEarlyReturn(ObjectLevelReadQuery.java:433)
	at oracle.toplink.essentials.queryframework.DatabaseQuery.execute(DatabaseQuery.java:575)
	at oracle.toplink.essentials.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:692)
	at oracle.toplink.essentials.queryframework.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:746)
	at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2233)
	at oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:952)
	at oracle.toplink.essentials.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:924)
	at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.executeReadQuery(EJBQueryImpl.java:367)
	at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.getResultList(EJBQueryImpl.java:478)
	at dd.servlets.DataManager.getData(DataManager.java:107)
	at dd.servlets.DataManager.service(DataManager.java:87)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
	at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:290)
	at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
	at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
	at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
	at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
	at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
	at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
	at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
	at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380)
	at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
	at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
|#]
```

meine Entitiy (steht auch in der persistence.xml)

```
@Entity
@Table(name="dreminder")
public class Dreminder implements Serializable {
	
	@Id
	@GeneratedValue
	private int id;
```


----------

