Erreur lors de la persistence JPA+PostgreSQL
Bonjour,
Je viens vous demander de l'aide parce que je ne trouve plus aucun moyens sur le net.
Je veux persister sur une BD Postgresql, j'ai modifié le persistence.xml, rajouter un fichier postgresql-ds.xml dans le server/default/deply, rajouté le driver postgres dans le server/lib/
La création des tables se fait bien, mais quand je veux persister j'ai une jolie erreur et je ne peux rien ajouter dans la BD.
Voici l'erreur:
Code:
1 2 3 4 5
| java.lang.reflect.UndeclaredThrowableException
at $Proxy0.ajoutUtilisateur(Unknown Source)
at entities.InsertData.main(InsertData.java:28)
Caused by: java.rmi.MarshalException: Failed to communicate. Problem during marshalling/unmarshalling; nested exception is:
java.io.NotSerializableException: entities.Utilisateur |
voici le persistence.xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <?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="serveurAppliJPA">
<!-- le fournisseur JPA est Hibernate -->
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/PGDS</jta-data-source>
<mapping-file>META-INF/orm.xml</mapping-file>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
</properties>
</persistence-unit>
</persistence> |
le postgresql-ds.xml
Code:
1 2 3 4 5 6 7 8 9 10 11
| <datasources>
<local-tx-datasource>
<jndi-name>PGDS</jndi-name>
<connection-url>
jdbc:postgresql://localhost:5432/baseTest
</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<user-name>postgres</user-name>
<password>XXXX</password>
</local-tx-datasource>
</datasources> |
enfin le code d'insertion
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| public class InsertData {
public static void main(String[] args) {
InitialContext ctx;
try {
ctx = getInitialContext();
CompteDAO lecompte = (CompteDAO) ctx.lookup("CompteDAOBean/remote");
Utilisateur unUser = new Utilisateur();
unUser.setIdUtilisateur(2);
unUser.setEmail("lkljk");
unUser.setPwd("jkj");
lecompte.ajoutUtilisateur(unUser);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@SuppressWarnings("unchecked")
private static InitialContext getInitialContext() throws Exception{
Hashtable props = new Hashtable();
props.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
props.put("java.naming.factoy.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
props.put("java.naming.provider.url", "localhost");
return new InitialContext(props);
}
} |
Un grand merci :D