Tomcat 7, Struts, JPA baut keine Verbindung auf

Hallo *,

ich versuche mich in die Idee des Web-Development einzuarbeiten. Ich habe Tomcat 7.0.8 am laufen und das ein oder andere auf Basis von struts funktioniert auch schon mal. Jetzt wollte ich JPA mit einbinden, als standalone klappt das auch, aber in der Web-Umgebung? Ich bekomme immer eine Exception aus meiner Applikation heraus:
Java:
javax.servlet.ServletException: javax.persistence.PersistenceException: No Persistence provider for EntityManager named testjpa
	org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
	org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)

root cause

javax.persistence.PersistenceException: No Persistence provider for EntityManager named testjpa
	javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
	javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
	TestTomcat2.RegisterMailLHofcafe.isMailValid(RegisterMailLHofcafe.java:54)
	TestTomcat2.RegisterMailLHofcafe.execute(RegisterMailLHofcafe.java:39)
Nun weiß ich ja schonmal, dass er die Persistence-JAR schon gefunden hat, sonst bekomme ich eine andere Exception. Ich nehme an meine Konfiguration für JPA wird nicht geladen:
persistence.xml:
Java:
<!--<?xml version="1.0" encoding="UTF-8" ?>-->
<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_2_0.xsd"
	version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
	<persistence-unit name="testjpa" transaction-type="RESOURCE_LOCAL">
		<class>TestTomcat2.MailList</class>
		<properties>
			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/test" />
			<property name="javax.persistence.jdbc.user" value="root" />
			<property name="javax.persistence.jdbc.password" value="abcDE123" />

			<!-- EclipseLink should create the database schema automatically -->
			<property name="eclipselink.ddl-generation" value="create-tables" />
			<property name="eclipselink.ddl-generation.output-mode" value="database" />

		</properties>
	</persistence-unit>
</persistence>
und orm.xml:
Java:
<?xml version="1.0" encoding="UTF-8" ?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
    version="1.0">
    <description>Test register mailing list</description>
    <package>TestTomcat2</package>
    <entity class="TestTomcat2.RegisterMailLHofcafe" name="testjpa">
        <table name="MailList"/>
        <attributes>
            <id name="id">
                <generated-value strategy="TABLE"/>
            </id>
            <basic name="email">
                <column name="EMAIL" length="100"/>
            </basic>
            <basic name="key">
                <column length="255"/>
            </basic>
        </attributes>
    </entity>
</entity-mappings>
Beide Dateien liegen im WEB-INF Verzeichniss des Projektes, ich habe sie auch schon nach WEB-INF/classes geschoben und etliches ausprobiert, will aber trotzdem alles nicht.

Dabei gehe ich davon aus, dass ich die Lagerorte für die verschiedenen Dateien auch noch nicht ganz durchblickt habe. Kann hier jemand den Fehler erkennen und mir helfen?

Danke,
Stephan
 
Daraufhin habe ich meine persistence.xml erweitert:
Java:
<!--<?xml version="1.0" encoding="UTF-8" ?>-->
<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_2_0.xsd"
	version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
	<persistence-unit name="testjpa" transaction-type="RESOURCE_LOCAL">
		<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
		<class>TestTomcat2.MailList</class>
		<properties>
			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/test" />
			<property name="javax.persistence.jdbc.user" value="root" />
			<property name="javax.persistence.jdbc.password" value="abcDE123" />

			<!-- EclipseLink should create the database schema automatically -->
			<property name="eclipselink.ddl-generation" value="create-tables" />
			<property name="eclipselink.ddl-generation.output-mode" value="database" />

		</properties>
	</persistence-unit>
</persistence>
Die Exception wie oben bleibt aber?!? Wo müssen denn die persistence.xml und die orm.xml liegen? Mittlerweile sind sie überall, aber wo wäre es richtig?
 
Hmm, ich muss zugeben, der Thread sagt mir überhaupt nichts... Sind diese Abhängigkeiten in irgendeiner Datei hinterlegt? Wie bekomme ich raus, wer mit wem zusammen arbeiten kann? Hast du ein paar Hinweise für mich?

Danke,
Stephan
 
Ich hatte die beiden jars im lib Verzeichnis von Tomcat. Hab das jetzt auch in den Classpath genommen, hilft aber nichts. Ich habe "eclipselink.jar" und "javax.persistence_2.0.1.v201006031150.jar" jetzt jeweils im lib von Tomcat liegen und im WEB-INF/lib vom Projekt. Im WEB-INF/lib/META-INF habe ich jetzt die persistence.xml und orm.xml liegen. Mittlerweile habe ich diese Dateien an so vielen Stellen liegen gehabt und dort wieder weggenommen dass ich mich frage, ob es nicht einen vernünftigen Weg gibt herauszubekommen, wo sie denn nun wirklich hingehören?
 

MySelV

Aktives Mitglied
Hi,

der Ordner META-INF gehört aber auf dieselbe Ebene wie WEB-INF, nicht in den Ordner WEB-INF.
Ansonsten weiß ich auch nicht weiter.


Grüße
Erik
 
Hoi, ich nochmal... Bisher habe ich immer noch mit
Java:
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory( "testjpa" );
gearbeitet, jetzt hab ich mal im Nebel gestochert (muss man tatsächlich so sagen):
Java:
EntityManagerFactory entityManagerFactory = new org.eclipse.persistence.jpa.PersistenceProvider().createEntityManagerFactory( "testjpa", null );
Und siehe da, die Exception ist weg... Mal schauen wie es weiter geht, vielleicht kommt hier ja nochmal jemand vorbei der mir das erklären kann? Weil in der standalone application habe ich die obere Quelle verwendet...
 
FileMonitor hat weitergeholfen...
Die "persistence.xml" wurde allen Ernstes hier gesucht (TestTomcat2 ist das Projekt):
...\TestTomcat2\WEB-INF\classes\META-INF\persistence.xml

Kann mir das jetzt jemand erklären? Gibt es irgendwelche Regeln, welche Datei wo liegen muss oder muss ich mir das jedesmal ausdenken??? Muss doch irgendwo 'ne Doku geben, die ich noch nicht gefunden hab - was mir schwer fällt zu glauben...
 

mvitz

Top Contributor
Naja JPA (und damit auch Hibernate) sucht nun mal die persistence.xml im Classpath in einem Ordner META-INF. Da der Classpath für eine Webapp praktisch in WEB-INF/classes beginnt ergibt sich als richtiger Ordner: WEB-INF/classes/META-INF/persistence.xml
 
Tja, also ich hab mich ziemlich schwer getan diese Info zu finden... Wie so oft, wenn man es weiß scheint es auch ganz logisch, bei allen Beispielen die ich gelesen hab waren viele Pfade angegeben, aber der noch nicht...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
ruutaiokwu Servlet Tomcat Versionsproblem? Web Tier 4
I JSF JSF, Tomcat, Server Faces und maven Web Tier 3
feinperligekohlensaeure JSF JSF + Tomcat 9 | HTTP Status 404 |(com.sun.faces.config.ConfigureListener?) Web Tier 1
R Tomcat - java.lang.OutOfMemoryError: PermGen space Web Tier 0
puba mit JDev entwickelter WS auf Tomcat deployen Web Tier 2
R JSF Tomcat 7 & JSF - UnsupportedOperationException Web Tier 1
G Probleme mit Java + Tomcat | Cannot switch on a value of type String for source level below 1.7 Web Tier 8
S Tomcat 8.0.9 logging Web Tier 0
S Servlet Tomcat 8.0.9 logging Web Tier 13
D JSP Anfängerfrage - Ändern von JSP / Tomcat Web Tier 4
R Tomcat 7 und SSL Web Tier 3
J JSP Web Applikation auf virtuellem Tomcat Server Web Tier 1
T JSF in Eclipse mit Tomcat Web Tier 0
S JSF Tomcat in Eclipse einbinden (JSF) Web Tier 0
G Magnolia CMS - jedes mal Tomcat restart Web Tier 7
A Wartezeit nach Tomcat start wegen Servlets zu hoch Web Tier 2
M tomcat anwendungsabhängige konfigdateien Web Tier 6
H JSP, Eclipse, Tomcat - Java Klasse wird nicht gefunden Web Tier 8
C Tomcat wirft keine ViewExpiredException Web Tier 8
C Tomcat + Eclipselink = NotSerializable Exception? Web Tier 2
M JSP Problem beim deployen auf Tomcat Web Tier 2
A Servlet File Upload funktioniert nur lokal auf Entwicklungsrechner, nicht in Tomcat Web Tier 5
T Tomcat mit Servlets Problem Web Tier 7
B JSF JSF1.1 @Tomcat 5.5 für ein neues Projekt Web Tier 18
P JSF Umgebungsvariablen bei Tomcat-Start setzen Web Tier 4
D Tomcat/Struts2 Benutzer bestimmt Name der URL Web Tier 2
T Tomcat: Packete dynamisch auslesen und Klassen erzeugen Web Tier 3
S Servlet Problem mit Tomcat Web Tier 3
M Classpath für JPA in Tomcat Webapp: Wie konfigurieren? Web Tier 4
reibi Tomcat : Änderbare Config-Files Web Tier 5
reibi Servlet Tomcat : Display name und version setzen Web Tier 3
JCODA Tomcat ohne Fenster starten Web Tier 5
P Eclipse zeigt Errors an, die auf Tomcat nicht auftreten Web Tier 2
B Tomcat 6 ergibt Fehler - java.net.SocketException Web Tier 2
L Services in Tomcat einbinden? Web Tier 2
B JSF Tomcat Windows Linux equals Problem Web Tier 3
N JSP org.apache.tomcat cannot be resolved to a type InstanceManager cannot be resolved to a type Web Tier 4
M Geschwindigkeit von Tomcat / JavaWebanwendungen Web Tier 3
D Probleme mit Tomcat Web Tier 3
M Tomcat 6 Umlaut Probleme Web Tier 2
F No Factories configured for this Application - Myfaces mit Tomcat Web Tier 1
T jsf Tobago in Tomcat classpath aufnehmen Web Tier 2
A Beispiel wirft Fehler. JSF 2.0 / Tomcat / Eclipse Web Tier 2
J Tomcat-Server mit JSF auf Eclipse einrichten Web Tier 7
F umzug von tomcat 4 auf tomcat 6 Web Tier 2
J tomcat webapp restarten Web Tier 2
ruutaiokwu tomcat autodeploy Web Tier 7
I Tomcat aktualisiert CSS - Datei nur ab und zu Web Tier 4
T Tomcat-Projektverzeichnis Web Tier 13
E JSF Applikation läuft nicht über Tomcat Web Tier 3
F JApplet in Tomcat-Umgebung funktioniert mal wieder nicht ... Web Tier 8
T Tomcat, JSP, UTF-8 und URL-Codierung Web Tier 4
A Hat Tomcat einen Cache? Web Tier 5
S Tomcat Heap Memory erhoehen..? Web Tier 4
I Rich Faces nur mit JBoss oder auch Tomcat? Web Tier 7
S Tomcat / Eclipse Probleme Web Tier 2
T Tomcat Projekt ohne Eclipse starten Web Tier 11
A Tomcat - JSP läuft nicht Web Tier 2
reibi access.log in Tomcat ... ist das möglich? Web Tier 2
R Fehler 1053 beim Beenden von Tomcat Web Tier 25
A Tomcat - JSP ausführen Web Tier 8
M Tomcat - Mehrere Verzeichnisse für die jsp Web Tier 12
thE_29 Tomcat - Applications(Context) bekommen Web Tier 19
A Tomcat: beim Start des Servers einmalige Aktion aufrufen (Problem gelöst) Web Tier 2
T Hibernate, Debuggingparameter Tomcat Web Tier 3
A JDBC in Tomcat einbinden Web Tier 3
P Tomcat funktioniert nicht so wie er sollte Web Tier 11
C Tomcat total memory Web Tier 11
C Apache-Tomcat Web Tier 13
F ssl, tomcat und jsp anwendungen Web Tier 5
G Tomcat 4.1 Experimente 8) Web Tier 3
S Tomcat JSP context.xml - Standartpfad einstellen Web Tier 3
J Fehler Tomcat/JSP findet Methode nich Web Tier 3
jann Tomcat und Kompression Web Tier 9
Q tomcat konfiguration - rewrite Web Tier 3
A TomCat will nicht - Wieso? Web Tier 5
Q Auth. per Tomcat Web Tier 4
O kurze Frage zur Tomcat Installation Web Tier 2
G Probleme mit Tomcat Web Tier 14
G Tomcat findet angeblich die Datei nicht. Web Tier 8
J Tomcat - web.xml und package . Web Tier 4
L JSP Tomcat Login Web Tier 6
G SCHWERWIEGEND: NullPointerException bei Tomcat Web Tier 4
U Java Application auf Tomcat Web Tier 5
Y JSF - Exception bei Tomcat Start Web Tier 4
O Source-Code vom Tomcat kompilieren lassen Web Tier 6
I heutzutage Struts 1 oder 2 in der Praxis? Web Tier 4
K Struts Struts forwarded lokal auf fertige Webseite Web Tier 2
M Struts 2 - "There is no Action mapped for namespace..." - globale Lösung? Web Tier 3
D Struts 2 , DIV Container mit verschiedner Farbe Web Tier 2
K Struts request Zugriff Web Tier 4
2 Anwendung mit Zuständen und Struts Web Tier 5
P Struts 2 Download Dateinamen Web Tier 2
ruutaiokwu struts 2 & jsf kombinieren Web Tier 2
D Struts und CSS Web Tier 4
7 Struts+AJAX- Session-Handling? Web Tier 2
7 Struts und Ajax. Problem mit Actions Web Tier 2
7 Struts iterator index JS-Funktion übergeben?? Web Tier 2
7 Struts: bei action immer ein Result nötig? Web Tier 2
7 Struts vom popup wieder zurück ins alte Fenster? Web Tier 2

Ähnliche Java Themen

Neue Themen


Oben