JPA kein EntityManager

Ein Dynamic Web Project kannst du mit Eclipseboardmitteln auf nen lokal installieren Server schubsen und bekommst Hotdeployment out of the box

Genau das versuche ich den ganzen Tag :) Ok, also noch mal langsam:

Ich deploye meine Anwendung, die wir ja schon zur genüge Auseinander genommen haben. Starte meinen Browser, gehe auf meinen lokalen Server, alles wunderbar. Wenn ich jetzt eine JSP Seite ändere (ich speichere, Eclipse re-deployed) bekomme ich bei einem refresh meine Seite:

Code:
[#|2008-03-05T09:02:10.871+0100|SEVERE|sun-appserver9.1|javax.enterprise.system.container.web|_ThreadID=16;_ThreadName=httpSSLWorkerThread-8080-1;_RequestID=191f506a-6da7-4bf9-ba89-5a872534108a;|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:89)
	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.connector.grizzly.TaskBase.run(TaskBase.java:265)
	at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
|#]

im Oracle Forum habe ich wie gesagt den oben genannten Artikel gefunden, dass das Problem mit dem Classloader zu tuen haben soll der auf die veraltet Entity zugreift (?) leider habe ich die Lösung die die User da angeboten nicht ganz nachvollziehen können.

Jetzt mein Problem verständlich geworden?

Grüße
D

PS:

Ein einfaches JavaProjekt geht auch nicht

? Ich glaube da hast du nicht ganz verstanden was ich gemacht habe...das "dynamic Web Project" unter Eclipse ist doch auch nichts anderes als ein Java Project mit einer bestimmten Struktur und bestimmen XML Files...und genau die habe ich per Hand geschaffen und nicht mit dem "Wizard" von Eclipse, das ging ja auch...naja analog zumindest mit dem selben Fehler :)
 
Hallo Zusammen,

ich mal wieder. Ich komme der Sache ein wenig näher, bzw, bin noch ratloser als vorher. Ich habe kurzerhand die Entwicklungsumgebung gewechselt (NetBeans 6.0) weil ich in Erinnerung hatte das es damit problemloser ging. Und siehe da : ES GEHT !

Da ich aber eigentlich an Eclipse hänge würde ich mich freuen wenn jemand mich auf den Punkt stoßen könnte woran es dran liegt.

Ich bin folgendermaßen vorgegenangen, ich habe meine gesamten Projekt-Files in NetBeans importiert, ausser die persistence.xml, die habe ich von NetBeans generierrieren lassen. Um das durch zu führen musste ich im Server einen neuen ConnectionPool anlegen (funktioniert). Dann habe ich die generrierte persistence.xml aus Netbeans genommen und in mein Eclipse kopiert:

persistcen.xml
Code:
<?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>

Um das ganze (in NetBeans) lauffähig zu bekommen, musste ich eine Änderung an meinem Servlet machen (das was mein freundlicher Helfer hier schon in den ganz frühen Posting gesagt hat)

Code:
@PersistenceUnit
	private EntityManagerFactory factory;

in NetBeans, funktioniert es. In Eclipse bekomme ich eine NullPointer Exception sobald ich die factory nach einem EntityManager frage (EntityManager em = factory.createEntityManager();)

WIE GEHT DAS :( habe wirklich alle Dateien genau abgeglichen (NetBeans hat einen bisschen anderen aufbau, mit ner build.xml und anderen Ordnern, aber Eclipse muss das doch auch hinbekommen...)

Jemand Ideen?

Dom

** edit **
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 :(
 
Zuletzt bearbeitet:
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 (allerdings von anfang an)

Code:
[#|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)
Code:
@Entity
@Table(name="dreminder")
public class Dreminder implements Serializable {
	
	@Id
	@GeneratedValue
	private int id;
 

Neue Beiträge

Zurück