Wie Sie sich anpassen persistence.xml Datei zu verbinden, JPA, JDBC/MySQL-Datenbank in Java-EE-Umfeld (Tomcat + JSF)

Ich entwickle ein Dynamisches web-Projekt (Java EE) mit JSF, PrimeFaces, JPA, und läuft auf Tomcat 7.
Die Projektentwicklung basiert auf http://www.simtay.com/simple-crud-web-application-with-jsf-2-1-primefaces-3-5-maven-and-jpa/

Jetzt bin ich die Entwicklung der JPA-Teil der software. In der Vergangenheit entwickelte ich einige kleine Dinge (wie übungen), die in Java SE, die ich verwendet, um verwenden Sie die folgenden Datenbank-Eigenschaften:

jdbc.drivers=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=password

Aber jetzt bin ich lernen, JPA Java EE.

In dem Buch "Pro JPA 2-Mastering the Java Handel Persistenz-API", Kapitel 3, Abschnitt "Verpackung" kann man Lesen:

In der Java-EE-Umgebung, viele Eigenschaften, die benötigt werden in der
die Persistenz.xml-Datei für die Java-SE verzichtet werden kann. In Listing 3-32, Sie
sehen persistence.xml Datei aus Listing 2-11 konvertiert
Bereitstellung als Teil einer Java-EE-Anwendung. Anstelle von JDBC
Eigenschaften zum erstellen einer Verbindung, die wir jetzt erklären, dass das Unternehmen
manager sollten, verwenden Sie den data source name "jdbc/EmployeeDS". Wenn die Daten
Quelle definiert wurde, werden die in der Anwendung verfügbar namespace
statt die lokale Komponente Namenskontext dann könnten wir stattdessen
verwenden Sie den data source name "java:app/jdbc/EmployeeDS". Die
transaction - type-Attribut wurde auch entfernt, sodass die
persistence unit, um die Standardeinstellung zu JTA. Die Anwendung server wird
automatisch finden von entity-Klassen, so auch die Liste der Klassen hat
entfernt wurden. Dieses Beispiel stellt die ideale minimale Java EE
- Konfiguration. Da die business-Logik, die verwendet diese Persistenz
Einheit implementiert ist, in eine stateless session bean, die persistence.xml
Datei normalerweise im META-INF-Verzeichnis die
entsprechende EJB-JAR.

Listing 3-32. Die Definition einer Persistence Unit in der Java EE -

<persistence>
    <persistence-unit name="EmployeeService">
        <jta-data-source>jdbc/EmployeeDS</jta-data-source>
    </persistence-unit>
</persistence>

Listing 2-11. Elemente in der persistence.xml Datei

<persistence>
    <persistence-unit name="EmployeeService" transaction-type="RESOURCE_LOCAL">
        <class>examples.model.Employee</class>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
            <property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527 EmpServDB;create=true"/>
            <property name="javax.persistence.jdbc.user" value="APP"/>
            <property name="javax.persistence.jdbc.password" value="APP"/>
        </properties>
    </persistence-unit>
</persistence>

Meine Frage ist: wie kann ich die Anpassung einer generischen persistence.xml Datei in Java-EE-Umgebung eine Verbindung zu einer MySQL/JDBC-Datenbank mit den Eigenschaften, ich trat an der Spitze der post?

Tomcat als Barebone-JSP/Servlet-container kann man wohl kaum als "Java-EE-Umgebung". Sie unterstützt jedoch nicht die container-verwaltete Transaktionen (JTA), das ist, was Sie letztendlich benötigen. Real Java EE Container wie Glassfish, JBoss AS und TomEE Unterstützung, JTA - (und JPA, EJB, JSF, etc, etc) aus der box. Auf "plain" Tomcat, müssten Sie zu installieren, JTA getrennt (wie du installiert JSF und JPA separat). Googeln "installieren jta tomcat" geben sollte ausreichend Hinweise. Oder einfach nur migrieren, um eine vollwertige Java-EE-container, so dass Sie nicht brauchen, zu installieren lose Java EE-Artefakte ankommen.
Ich weiß nicht, wie TomEE, ich hatte eine Menge Probleme mit ihm. In dem moment gab ich auf mit es es weder gestartet. Ich mag, um mehr zu importieren Bibliotheken im Tomcat. Nachdem ich stackoverflow.com/questions/2552612/... ich begann zu lernen, wie man Datei " JMX-voll, um mein Projekt verwenden JTA richtig. Wenn Sie den vorherigen Kommentar als eine Antwort, gebe ich Ihnen die grüne mark V

InformationsquelleAutor Germano Massullo | 2013-06-27

Schreibe einen Kommentar