Hallo Leute,
ich versuche wie verzweifelt EclipseLink in eine JavaEE-Anwendung unter Tomcat einzubinden. Doch das Framework will mir mit
nicht einmal eine einfache EntityManagementFactory erzeugen.
Zunächst einmal die Rahmenbedingungen der Anwendung:
Mein Vorgehen war wie folgt:
Gibt es noch weitere Dinge die zu tun wäre oder die es zu beachten gilt?
Beim Erzeugen der emf tritt folgende Exception auf:
Kopiere ich die beiden oben gennanten Jar's ins Verzeichnis $Tomcat-Root-Dir/lib, bekomme ich folgenden neuen Fehler:
Das scheint aber immerhin schonmal ein Fortschritt zu sein, da der ClassLoader beim laden der Servlet-Klasse, in der Zeile wo die EntityManagerFactory erzeugt wird, durchläuft. Oder?
Hoffe es hat jemand eine Idee, mir gehen Sie langsam aus.
Vorab vielen Dank für eure Hilfe.
ich versuche wie verzweifelt EclipseLink in eine JavaEE-Anwendung unter Tomcat einzubinden. Doch das Framework will mir mit
Java:
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("JPAWebAppTest");
Zunächst einmal die Rahmenbedingungen der Anwendung:
- JSP
- Servlets
- JSF in ferner Zukunft
- Zunächst einmal ohne JTA
- Keine EJB's
- Entwicklung in der EclipseLink IDE ohne JPA Facet
Mein Vorgehen war wie folgt:
- Die beiden JAR’s: javax.persistence_2.0.1.v201006031150.jar und
eclipselink.jar in den BuildPath von Eclipse einbinden. - Eine entsprechende persistence.xml ins Verzeichnis
WebContent/WEB-INF/classes/META-INF/persistence.xml ablegen. - Und starten per EntityManagerFactory emf = persistence.createEntityManagerFactory("JPAWebAppTest");
(Dies findet in einem Servlet statt.)
Gibt es noch weitere Dinge die zu tun wäre oder die es zu beachten gilt?
Beim Erzeugen der emf tritt folgende Exception auf:
Code:
SCHWERWIEGEND: Servlet.service() for servlet [meinservletpackage.ServletZwei] in context with path [/MeineWebAppRoot] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: javax.persistence.Persistence
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at meinservletpackage.ServletZwei.doGet(ServletZwei.java:45)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
Kopiere ich die beiden oben gennanten Jar's ins Verzeichnis $Tomcat-Root-Dir/lib, bekomme ich folgenden neuen Fehler:
Code:
Exception [EclipseLink-30005] (Eclipse Persistence Services - 2.1.2.v20101206-r8635): org.eclipse.persistence.exceptions.PersistenceUnitLoadingException
Exception Description: An exception was thrown while searching for persistence archives with ClassLoader: WebappClassLoader
context: /MeineWebAppRoot
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@9664a1
Internal Exception: Exception [EclipseLink-30009] (Eclipse Persistence Services - 2.1.2.v20101206-r8635): org.eclipse.persistence.exceptions.PersistenceUnitLoadingException
Exception Description: An exception was thrown while trying to load persistence unit at url: file:/G:/CLIX3/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/MeineWebApp-JPATest/WEB-INF/classes/
Internal Exception: java.lang.NullPointerException
Das scheint aber immerhin schonmal ein Fortschritt zu sein, da der ClassLoader beim laden der Servlet-Klasse, in der Zeile wo die EntityManagerFactory erzeugt wird, durchläuft. Oder?
Hoffe es hat jemand eine Idee, mir gehen Sie langsam aus.
Vorab vielen Dank für eure Hilfe.