persistence.xml avec Glassfish 3.1.1
Je suis très nouveau à glassfish, JPA, et ainsi de suite et j'ai vraiment des problèmes avec les mettre en place. Ce que je prévois de faire, c'est un simple service RESTful avec une persistante backend. Je suis à l'aide de glassfish3 en tant que serveur d'applications et déjà déployé un simple service REST avec le maillot-de la bibliothèque. Maintenant, je veux donner accès à une base de données via JPA. Glassfish est livré avec JavaDB/derby et EclipseLink, est ce que le droit? Donc, je veux l'utiliser 🙂
J'ai créé un persistence.xml dans META-INF:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/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_1_0.xsd">
<persistence-unit name="myPU" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDataSource" /> <!-- org.apache.derby.jdbc.EmbeddedDriver -->
<property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/sample;create=true" />
<property name="javax.persistence.jdbc.user" value="APP" />
<property name="javax.persistence.jdbc.password" value="APP" />
<property name="eclipselink.ddl-generation" value="create-tables" />
</properties>
</persistence-unit>
</persistence>
Puis j'ai créé un champ dans ma ressource, lorsque je veux accéder à/store som données:
@PersistenceUnit(unitName = "myPU")
EntityManagerFactory emf;
Mais "cem" est toujours NUL 🙁
Je suppose que mon persistence.xml n'est pas configuré approprié.
Serait vraiment heureux si quelqu'un a une astuce, ce que je fais de mal...
merci!
source d'informationauteur Eddy
Vous devez vous connecter pour publier un commentaire.
Je pense qu'il est préférable de créer JNDI pour connexion db . Vous pouvez le faire facilement avec GlassFish.
Tout d'abord créer un pool de connexion (vous allez définir db paramètres de connexion);
Ressources->JDBC->Connexion JDBC Piscines
Après que la caisse de nom JNDI pour cette piscine ;
Ressources->JDBC->les Ressources JDBC
Donc disons que vous réglez nom JNDI que "dbCon"
Et ici votre persistence.xml ;
Note : Vous devez copier votre jdbc bocal \glassfish-3.1.1\glassfish\domains\domain1\lib\ext
J'ai maintenant la solution pour mon problème.
Voici la configuration correspondante:
Donc, vous devez créer le dossier "META-INF" wihtin votre dossier src et de mettre le persistence.xml il y a:
J'ai créé le .xml précédemment dans le META-INF de WebContent, et ce qui est mauvais.
Vous aussi n'avez pas de référence des bibliothèques supplémentaires, puisque vous avez la glassfish modules ajoutés.
Maintenant, j'ai créé un JavaBean, où je n'ai injecter le PersistenceUnit:
Et celui-ci est injecté dans mes Ressources-Classes de la Jersey-Servlets:
Les injections ne fonctionne uniquement si les classes sont marqués comme "@Stateless".
Je n'ai pas essayé avec un service RESTful, mais je suppose que ça ne devrait pas d'importance. J'ai remarqué que vous utilisez persistence.xml pour la version 1. Aucune raison spécifique?
Suivants persistence.xml fonctionne pour moi:
Espère que cette aide.