Hallo,
erstmal entschuldige ich mich. Ich weiss nicht wirklich, ob der Thread hier richtig ist. Falls nicht, ist ein Moderator so nett und verschiebt ihn?
Ich habe folgendes Requirement:
- Webanwendung mit JSF
- Persistenzschicht mit JPA
- kein Applikationsserver
Daraus resultierend setze ich folgendes ein:
- Eclipse als IDE
- Eclipse dynmaic web project
- Tomcat 7 als Servletcontainer
- mySQL Datenbank
- myFaces von Apache
- OpenJPA von Apache
Ich kenne JPA nur von Applikationsservern. JPA benötigt bekanntlich eine persistence.xml die beim Erzeugen des EntityManagers ausgelesen wird. Meine Frage ist nun: wo muss ich diese hinstellen?
Ins META-INF?
Ins WEB-INF?
Ich habe sie einfach mal ins META-INF Gestellt - und es funktioniert nicht.
Meldung ist:
dazu folgender Output auf der Konsole:
anbei noch di persistence.xml
[xml]
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
version="1.0"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<persistence-unit name="JDOIT" transaction-type="RESOURCE_LOCAL">
<class>Task</class>
<properties>
<property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost/JDOIT-DB" />
<property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver" />
<property name="openjpa.ConnectionUserName" value="xxx" />
<property name="openjpa.ConnectionPassword" value="xxxxx" />
<property name="openjpa.Log" value="SQL=TRACE" />
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />
</properties>
</persistence-unit>
</persistence>
[/xml]
Vielen Dank und Grüße,
Sebastian.
erstmal entschuldige ich mich. Ich weiss nicht wirklich, ob der Thread hier richtig ist. Falls nicht, ist ein Moderator so nett und verschiebt ihn?
Ich habe folgendes Requirement:
- Webanwendung mit JSF
- Persistenzschicht mit JPA
- kein Applikationsserver
Daraus resultierend setze ich folgendes ein:
- Eclipse als IDE
- Eclipse dynmaic web project
- Tomcat 7 als Servletcontainer
- mySQL Datenbank
- myFaces von Apache
- OpenJPA von Apache
Ich kenne JPA nur von Applikationsservern. JPA benötigt bekanntlich eine persistence.xml die beim Erzeugen des EntityManagers ausgelesen wird. Meine Frage ist nun: wo muss ich diese hinstellen?
Ins META-INF?
Ins WEB-INF?
Ich habe sie einfach mal ins META-INF Gestellt - und es funktioniert nicht.
Meldung ist:
A JDBC Driver or DataSource class name must be specified in the ConnectionDriverName property.
viewId=/index.xhtml
location=C:\Users\sebastian\workspace_web\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\xxx\index.xhtml
phaseId=INVOKE_APPLICATION(5)
Caused by:
org.apache.openjpa.persistence.ArgumentException - A JDBC Driver or DataSource class name must be specified in the ConnectionDriverName property.
at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:76)
dazu folgender Output auf der Konsole:
*******************************************************************
*** WARNING: Apache MyFaces-2 is running in DEVELOPMENT mode. ***
*** ^^^^^^^^^^^ ***
*** Do NOT deploy to your live server(s) without changing this. ***
*** See Application#getProjectStage() for more information. ***
*******************************************************************
Jan 02, 2012 12:39:58 PM org.apache.coyote.AbstractProtocol start
Information: Starting ProtocolHandler ["http-bio-8080"]
Jan 02, 2012 12:39:58 PM org.apache.coyote.AbstractProtocol start
Information: Starting ProtocolHandler ["ajp-bio-8009"]
Jan 02, 2012 12:39:58 PM org.apache.catalina.startup.Catalina start
Information: Server startup in 8264 ms
Jan 02, 2012 12:40:02 PM org.apache.catalina.core.ApplicationContext log
Information: No state saving method defined, assuming default server state saving
Jan 02, 2012 12:40:03 PM org.apache.myfaces.config.annotation.Tomcat7AnnotationLifecycleProvider newInstance
Information: Creating instance of JDOSessionBean
12 WARN [http-bio-8080-exec-4] openjpa.Runtime - The configuration property named "openjpa.Id" was not recognized and will be ignored, although the name closely matches a valid property called "openjpa.Id".
32 INFO [http-bio-8080-exec-4] openjpa.Runtime - Starting OpenJPA 2.1.1
Jan 02, 2012 12:50:51 PM org.apache.myfaces.config.annotation.Tomcat7AnnotationLifecycleProvider newInstance
Information: Creating instance of JDOSessionBean
2 WARN [http-bio-8080-exec-5] openjpa.Runtime - The configuration property named "openjpa.Id" was not recognized and will be ignored, although the name closely matches a valid property called "openjpa.Id".
2 INFO [http-bio-8080-exec-5] openjpa.Runtime - Starting OpenJPA 2.1.1
anbei noch di persistence.xml
[xml]
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
version="1.0"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<persistence-unit name="JDOIT" transaction-type="RESOURCE_LOCAL">
<class>Task</class>
<properties>
<property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost/JDOIT-DB" />
<property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver" />
<property name="openjpa.ConnectionUserName" value="xxx" />
<property name="openjpa.ConnectionPassword" value="xxxxx" />
<property name="openjpa.Log" value="SQL=TRACE" />
<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />
</properties>
</persistence-unit>
</persistence>
[/xml]
- Wird die XML-Datei gezogen, oder resultiert der Fehler daraus das er sie nicht findet? Wie kann ich dies evtl. überprüfen?
- Wie oben bereits gefragt: Wo muss die XML-Datei stehen
Vielen Dank und Grüße,
Sebastian.