Tag Zusammen,
versuche gerade ein kleine WebProject auf zu setzen mit einer Datenbank dahinter. Leider bekomme ich das mit der Persistenz schicht einfach nicht auf die Reihe.
Software:
Eclipse Europe
Derby Datenbank
GlassFish Application Server
Ich bin wie folgt vorgegangen:
1. bei Ecipse ein "dynamic WebProject" ausgwählt.
2. als Persistenz Unit musste ich ihm ne neue libray basteln (?) hab ihm da das toplink-essentials und toplink-essentials-agent aus meinem SUN Ordner mitgegeben
3. Java Klasse erstellt die persistiert werden soll.
4. Datenbank und Tabelle in Derby angelegt
5. die Persistenz Unit in der persistence.xml eingetragen:
6. mein BeispielCode (Servlet) versucht nun einen EntityManager zu bekommen:
7. eine "nette" Exception auf der Serverseite
Bin schon am verzweifeln, hoffe jemand hat eine IDee, was ich vergessen / falsch gemacht habe...
Viele dank schon mal
D
versuche gerade ein kleine WebProject auf zu setzen mit einer Datenbank dahinter. Leider bekomme ich das mit der Persistenz schicht einfach nicht auf die Reihe.
Software:
Eclipse Europe
Derby Datenbank
GlassFish Application Server
Ich bin wie folgt vorgegangen:
1. bei Ecipse ein "dynamic WebProject" ausgwählt.
2. als Persistenz Unit musste ich ihm ne neue libray basteln (?) hab ihm da das toplink-essentials und toplink-essentials-agent aus meinem SUN Ordner mitgegeben
3. Java Klasse erstellt die persistiert werden soll.
4. Datenbank und Tabelle in Derby angelegt
5. die Persistenz Unit in der persistence.xml eingetragen:
Code:
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<persistence-unit name="default">
<provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>
<class>dd.ReminderDate</class>
<properties>
<property name="toplink.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
<property name="toplink.jdbc.url" value="jdbc:derby:C:\DerbyDatabases\dreminder;create=true"/>
<property name="toplink.jdbc.user" value="admin"/>
<property name="toplink.jdbc.password" value="adminadmin"/>
<property name="toplink.logging.level" value="INFO"/>
</properties>
</persistence-unit>
</persistence>
6. mein BeispielCode (Servlet) versucht nun einen EntityManager zu bekommen:
Code:
public class EntityManagerServlet extends HttpServlet {
@PersistenceContext
private static EntityManager em;
@Override
protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
if (arg0.getSession().getAttribute("em")==null) {
EntityManagerFactory emFactory = Persistence.createEntityManagerFactory("default");
em = emFactory.createEntityManager();
arg0.getSession().setAttribute("em", em);
}
}
}
7. eine "nette" Exception auf der Serverseite
Code:
Message ID: ApplicationDispatcher[/DReminders] Servlet.service() for servlet EM threw exception java.lang.NullPointerException at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.createEntityManagerFactory(EntityManagerFactoryProvider.java
Complete Message
120) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:60) at dd.entities.EntityManagerServlet.service(EntityManagerServlet.java:21) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397) at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:850) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:697) at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:654) at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:568) at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:983) at org.apache.jsp.index2_jsp._jspService(index2_jsp.java:75) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:353) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:412) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:318) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:278) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:240) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566) at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239) at com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667) at com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574) at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844) at com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287) at com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252) at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75
Bin schon am verzweifeln, hoffe jemand hat eine IDee, was ich vergessen / falsch gemacht habe...
Viele dank schon mal
D