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:
voici le persistence.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
le postgresql-ds.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
enfin le code d'insertion
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Un grand merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); } }
Partager