Comment s'adapter persistence.xml fichier pour vous connecter à JPA de JDBC/base de données MySQL en environnement Java EE (Tomcat + JSF)
Je suis en train d'élaborer un projet web Dynamique (Java EE) en utilisant JSF, PrimeFaces, JPA, et en cours d'exécution sur Tomcat 7.
Le projet de développement est basé sur http://www.simtay.com/simple-crud-web-application-with-jsf-2-1-primefaces-3-5-maven-and-jpa/
Maintenant, je suis en train d'élaborer la JPA partie du logiciel. Dans le passé, quand j'ai développé quelques petites choses (comme des exercices en Java SE, j'ai utilisé la base de données suivants propriétés:
jdbc.drivers=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=password
Mais maintenant, je suis en train d'apprendre JPA sur Java EE.
Dans le livre "Pro JPA 2 la maîtrise de la Java du commerce de la Persistance API", Chapitre 3, paragraphe "empaquetage", vous pouvez lire:
Dans l'environnement Java EE, de nombreuses propriétés requises dans le
la persistance.fichier xml pour Java SE peut être omis. Dans la Liste 3-32, vous
voir la persistence.xml fichier de la Liste 2-11 converti pour
le déploiement d'une application Java EE. Au lieu de JDBC
propriétés pour la création d'une connexion, nous déclarons maintenant que l'entité
le gestionnaire doit utiliser le nom de source de données “jdbc/EmployeeDS”. Si les données
la source a été défini pour être disponibles dans l'application de l'espace de noms
au lieu de la composante locale de contexte de nommage on pourrait à la place
utiliser le nom de source de données de “java:app/jdbc/EmployeeDS”. L'
transaction - type de l'attribut a également été supprimé pour permettre la
unité de persistance à défaut de JTA. L'application serveur
trouver automatiquement les classes d'entité, de sorte que même la liste des classes a
été supprimé. Cet exemple représente l'idéal minimum Java EE
la configuration. Parce que la logique d'entreprise qui utilise cette persistance
l'unité est mise en œuvre dans un bean session sans état, l'persistence.xml
fichier serait généralement situé dans le répertoire META-INF de l'
correspondant JAR EJB.
Liste 3-32. La définition d'une Unité de Persistance en Java EE
<persistence>
<persistence-unit name="EmployeeService">
<jta-data-source>jdbc/EmployeeDS</jta-data-source>
</persistence-unit>
</persistence>
Liste 2-11. Éléments dans le persistence.xml Fichier
<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>
Ma question est: comment puis-je adapter un générique persistence.xml fichier en environnement Java EE pour se connecter à une base de données MySQL/JDBC de la base de données en utilisant les propriétés, je suis entré au sommet de la poste?
Je n'aime pas TomEE, j'ai eu beaucoup de problèmes avec elle. Le moment où j'ai donné de l'utiliser, il n'a ni commencé. J'aime de plus pour importer des bibliothèques dans Tomcat. Après que voir stackoverflow.com/questions/2552612/... j'ai commencé à apprendre comment utiliser jbossts-plein de laisser mon projet de l'utilisation de JTA correctement. Si vous mettez votre précédent commentaire, comme une réponse, je vous donnerai le vert de la marque V
OriginalL'auteur Germano Massullo | 2013-06-27
Vous devez vous connecter pour publier un commentaire.
L'exemple donné nécessite JTA, Java Transaction API. Il va déléguer la gestion des transactions pour le conteneur. Avec JTA est activée, si vous utilisez un
@Stateless
EJB, puis un appel de méthode unique compte par défaut comme une seule transaction complète. Cela vous permet d'écrire du code propre, sans tx.commencer, tx.s'engager, tx.la restauration, etc standard.Comme JSF, EJB et JPA, JTA est par défaut ne sont pas disponibles sur un barebones JSP/Servlet conteneur Tomcat et Jetty. Comme JSF, EJB et JPA, vous devez installer JTA séparément sur Tomcat.
Une alternative est de passer d'une page JSP/Servlet container à un réel Java EE (profil web) contenant, comme Glassfish, JBoss as et TomEE. Il offre tout ce directement à partir de la boîte à l'égard de Java EE. Notez que JBoss as et TomEE utiliser Tomcat, JSP/Servlet moteur sous les couvertures.
Vous êtes les bienvenus.
J'ai une question. À l'aide de la carte Sim Tay l'exemple du TomEE, dois-je installer un JTA moteur ou est-il intégré dans TomEE?
tomee.apache.org/comparison.html
OriginalL'auteur BalusC