IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

probleme de persistence des donnees et generation des tables


Sujet :

Développement Web en Java

  1. #1
    Invité
    Invité(e)
    Par défaut probleme de persistence des donnees et generation des tables
    Salut,
    dans un dynamique web project..
    voici ma classe Personne
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    package com.projet.bean;
     
    import java.io.Serializable;
     
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
     
    @Entity
    public class Personne implements Serializable {
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
    	@Id
    	@GeneratedValue
    	private int id;
    	private String nom;
    	private String prenom;
    	private String email;
    	public Personne(String nom, String prenom, String email) {
    		super();
    		this.nom = nom;
    		this.prenom = prenom;
    		this.email = email;
    	}
    	public Personne() {
    		super();
    	}
    	public String getNom() {
    		return nom;
    	}
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
    	public String getPrenom() {
    		return prenom;
    	}
    	public void setPrenom(String prenom) {
    		this.prenom = prenom;
    	}
    	public String getEmail() {
    		return email;
    	}
    	public void setEmail(String email) {
    		this.email = email;
    	}
    	public int getId() {
    		return id;
    	}
     
     
     
    }
    ma classe Personneservice :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    package com.projet.service;
     
    import java.util.List;
     
    import javax.ejb.Stateless;
    import javax.persistence.EntityManager;
    import javax.persistence.EntityManagerFactory;
    import javax.persistence.NoResultException;
    import javax.persistence.Persistence;
    import javax.persistence.PersistenceContext;
    import javax.persistence.Query;
     
    import com.project.dao.IDao;
    import com.projet.bean.Personne;
     
    @Stateless
    public class PersonneService implements IDao<Personne> {
     
    	private static final String JPQL_SELECT_PAR_ID = "SELECT u FROM Personne u WHERE u.id=:id";
     
    	// Injection du manager, qui s'occupe de la connexion avec la BDD
     
    	private EntityManagerFactory emf= Persistence.createEntityManagerFactory("manager1");
    	@PersistenceContext
    	private EntityManager em = emf.createEntityManager();
    	// Enregistrement d'un nouvelle personne
    	public void create(Personne personne) {
    		em.persist(personne);
    		em.getTransaction().commit();
    	}
     
    	// Recherche d'une personne à partir de son id
    	public Personne findById(int id) {
    		Personne personne = null;
    		personne = em.find(Personne.class, id);
    		return personne;
    	}
     
    	// MAJ d'une personne
    	public void update(Personne personne) {
    		em.refresh(personne);
    		em.getTransaction().commit();
    	}
     
    	// supprimer une personne
    	public void delete(Personne personne) {
    		Personne pers = findById(personne.getId());
    		if (pers != null) {
    			em.remove(pers);
    			em.getTransaction().commit();
    		}
    	}
     
    	// findALL
    	public List<Personne> findAll() {
    		Query query = em.createQuery("SELECT e FROM Personne e");
    		List<Personne> personnes = (List<Personne>) query.getResultList();
    		return personnes;
    	}
     
    	// Recherche d'un utilisateur à partir de son id
    	public Personne findById2(int id) {
    		Personne personne = null;
    		Query requete = em.createQuery(JPQL_SELECT_PAR_ID);
    		requete.setParameter("id", id);
    		try {
    			personne = (Personne) requete.getSingleResult();
    		} catch (NoResultException e) {
    			return null;
    		}
    		return personne;
    	}
     
    }
    mon interface IDao:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    package com.project.dao;
     
    import java.util.List;
     
    public interface IDao<G> {
    	public void create(G o);
    	public void update(G o);
    	public void delete(G o);
    	public G findById(int id);
    	public List<G> findAll();
     
    }
    ma classe du teste :
    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
    package com.project.test;
     
    import com.projet.bean.Personne;
    import com.projet.service.PersonneService;
     
    public class Test {
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		PersonneService ps = new PersonneService();
    		Personne pers = new Personne();
    		pers.setEmail("fussa.fyby@ymail.com");
    		pers.setNom("Fyby");
    		pers.setPrenom("FuSsA");
    		ps.create(pers);
    	}
     
    }
    mon fichier persistence.xml du JPA context :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    	<persistence-unit name="manager1" transaction-type="RESOURCE_LOCAL">
    		<class>com.projet.bean.Personne</class>
    		<properties>
    			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/tp2_personne"/>
    			<property name="javax.persistence.jdbc.user" value="root"/>
    			<property name="javax.persistence.jdbc.password" value=""/>
    			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
    		</properties>
    	</persistence-unit>
    </persistence>
    j'utilise GlassFich
    lorsque j clique sur "run on server" de puis ma classe test.. ya aucun changement au niveau de ma base de données !
    merci pour votre aide..

  2. #2
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut,

    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
     
    @Stateless
    public class PersonneService implements IDao<Personne> {
     
    	private static final String JPQL_SELECT_PAR_ID = "SELECT u FROM Personne u WHERE u.id=:id";
     
    	// Injection du manager, qui s'occupe de la connexion avec la BDD
     
    	private EntityManagerFactory emf;
     
    	private EntityManager em;
     
             public PersonneService()
             {
                emf= Persistence.createEntityManagerFactory("manager1");    
                em = emf.createEntityManager();     
             }
     
    	// Enregistrement d'un nouvelle personne
    	public void create(Personne personne) {
                    em.getTransaction().begin();		
                    em.persist(personne);
    		em.getTransaction().commit();
    	}
    eric

  3. #3
    Invité
    Invité(e)
    Par défaut
    merci pour votre reponse..mais le probleme persiste encore ( aucune erreur a signaler + la table Personne n'est po creer au niveau de ma BD "tp2_personne" ) !

  4. #4
    Invité
    Invité(e)
    Par défaut
    j'ai changé mon serveur d'application de glassfish a wildfly..avec ce dernier j'ai pu cree une JDBC datasources vers ma BD " j'ai teste la connexion avec le ping : ça marche "
    du coup j'ai changé le contenu de mon fichier persistance.xml :
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    	<persistence-unit name="manager1" transaction-type="JTA">
    		<provider>org.hibernate.ejb.HibernatePersistence</provider>
    		<jta-data-source>java:jboss/datasources/mysqlDS</jta-data-source>
    		<class>com.projet.bean.Personne</class>
    		<properties>
    			<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/tp2_personne"/>
    			<property name="javax.persistence.jdbc.user" value="root"/>
    			<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
    			<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
                <property name="hibernate.show_sql" value="true" />
                <property name="hibernate.hbm2ddl.auto" value="create" />
    		</properties>
    	</persistence-unit>
    </persistence>
    quand je lance la classe Test :
    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
    32
    ERROR [org.jboss.msc.service.fail] (MSC service thread 1-15) MSC000001: Failed to start service jboss.deployment.unit."Webservice.war".FIRST_MODULE_USE: org.jboss.msc.service.StartException in service jboss.deployment.unit."Webservice.war".FIRST_MODULE_USE: JBAS018733: Failed to process phase FIRST_MODULE_USE of deployment "Webservice.war"
    	at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:166) [wildfly-server-8.2.1.Final.jar:8.2.1.Final]
    	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
    	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_60]
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_60]
    	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_60]
    Caused by: javax.persistence.PersistenceException: JBAS011466: PersistenceProvider 'org.hibernate.jpa.HibernatePersistence' not found
    	at org.jboss.as.jpa.processor.PersistenceUnitServiceHandler.lookupProvider(PersistenceUnitServiceHandler.java:990)
    	at org.jboss.as.jpa.processor.PersistenceUnitServiceHandler.addPuService(PersistenceUnitServiceHandler.java:258)
    	at org.jboss.as.jpa.processor.PersistenceUnitServiceHandler.handleWarDeployment(PersistenceUnitServiceHandler.java:191)
    	at org.jboss.as.jpa.processor.PersistenceUnitServiceHandler.deploy(PersistenceUnitServiceHandler.java:126)
    	at org.jboss.as.jpa.processor.PersistenceBeginInstallProcessor.deploy(PersistenceBeginInstallProcessor.java:52)
    	at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:159) [wildfly-server-8.2.1.Final.jar:8.2.1.Final]
    	... 5 more
     
    00:37:41,116 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014613: Operation ("deploy") failed - address: ([("deployment" => "Webservice.war")]) - failure description: {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"Webservice.war\".FIRST_MODULE_USE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"Webservice.war\".FIRST_MODULE_USE: JBAS018733: Failed to process phase FIRST_MODULE_USE of deployment \"Webservice.war\"
        Caused by: javax.persistence.PersistenceException: JBAS011466: PersistenceProvider 'org.hibernate.jpa.HibernatePersistence' not found"}}
    00:37:41,162 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 28) JBAS018559: Deployed "Webservice.war" (runtime-name : "Webservice.war")
    00:37:41,163 INFO  [org.jboss.as.server] (ServerService Thread Pool -- 28) JBAS018559: Deployed "mysql-connector-java-5.1.34-bin.jar" (runtime-name : "mysql-connector-java-5.1.34-bin.jar")
    00:37:41,164 INFO  [org.jboss.as.controller] (Controller Boot Thread) JBAS014774: Service status report
    JBAS014777:   Services which failed to start:      service jboss.deployment.unit."Webservice.war".FIRST_MODULE_USE: org.jboss.msc.service.StartException in service jboss.deployment.unit."Webservice.war".FIRST_MODULE_USE: JBAS018733: Failed to process phase FIRST_MODULE_USE of deployment "Webservice.war"
     
    00:37:41,184 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://127.0.0.1:9990/management
    00:37:41,185 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990
    00:37:41,185 ERROR [org.jboss.as] (Controller Boot Thread) JBAS015875: WildFly 8.2.1.Final "Tweek" started (with errors) in 3340ms - Started 245 of 302 services (1 services failed or missing dependencies, 92 services are lazy, passive or on-demand)
    00:37:41,404 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-14) JBAS015877: Stopped deployment Webservice.war (runtime-name: Webservice.war) in 19ms
    00:37:41,442 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018558: Undeployed "Webservice.war" (runtime-name: "Webservice.war")
    00:37:41,443 INFO  [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: Service status report
    JBAS014777:   Services which failed to start:      service jboss.deployment.unit."Webservice.war".FIRST_MODULE_USE
     
    00:37:46,198 INFO  [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 2) JBAS015003: Found Webservice.war in deployment directory. To trigger deployment create a file called Webservice.war.dodeploy
    merci

    NB:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java:jboss/datasources/mysqlDS
    la DS que j'ai cree avec wildfly

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/04/2012, 16h41
  2. Réponses: 30
    Dernier message: 24/10/2011, 18h37
  3. extraire des donnees et generer des requetes
    Par morocoboy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/09/2008, 10h13
  4. Réponses: 4
    Dernier message: 13/11/2007, 22h23
  5. Réponses: 5
    Dernier message: 20/06/2007, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo