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

Hibernate Java Discussion :

Helios, Oracle11G, hibernate


Sujet :

Hibernate Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Par défaut Helios, Oracle11G, hibernate
    Bonjour,


    J'ai cree mes classes d'objets, le fichier de configuration persistence.xml qui va bien :

    --------------------------------------------------------------------

    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlnssi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="VenteEnLigneClientJavaSE" transaction-type = "RESOURCE_LOCAL">
    <class>com.eni.dvtejb.metier.entities.Adresse</class>
    <class>com.eni.dvtejb.metier.entities.Article</class>
    <class>com.eni.dvtejb.metier.entities.Catalogue</class>
    <class>com.eni.dvtejb.metier.entities.Commande</class>
    <class>com.eni.dvtejb.metier.entities.Lignecommande</class>
    <class>com.eni.dvtejb.metier.entities.Produit</class>
    <class>com.eni.dvtejb.metier.entities.Stock</class>
    <class>com.eni.dvtejb.metier.entities.Utilisateur</class>
    <properties>
    <property name="hibernate.connnection.driver_class" value="oracle.jdbc.driver.OracleDriver"/>
    <property name="hibernate.connnection.username" value="HR"/>
    <property name="hibernate.connnection.password" value="IG10122008"/>
    <property name="hibernate.connnection.url" value="jdbc:oracle:thin:@PCool:1522/RH"/>
    <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/>
    <property name="hibernate.hbm2ddl.auto" value="update"/>
    <property name="hibernate.show_sql" value="true"/>
    </properties>
    </persistence-unit>
    </persistence>


    Je test par junit avec le programme suivant :

    --------------------------------------------------------------------------

    package com.eni.dvtejb.client;

    import java.math.BigDecimal;
    import java.sql.Timestamp;
    import java.util.Date;
    import java.util.logging.Logger;

    import javax.persistence.EntityManager;
    import javax.persistence.EntityManagerFactory;
    import javax.persistence.Persistence;

    import junit.framework.TestCase;

    import com.eni.dvtejb.metier.entities.Adresse;
    import com.eni.dvtejb.metier.entities.Utilisateur;
    import com.eni.dvtejb.metier.entities.Commande;

    /*
    * Le serveur n'a pas besoin d'être démarré pour exécuter ce test.
    * JPA peut également fonctionner hors container.
    * Le fichier persistence.xml doit être paramétré correctement.
    */
    public class PersistenceHorsContainerTest extends TestCase {

    private static Logger logger = Logger.getLogger(PersistenceHorsContainerTest.class.getName());
    private EntityManagerFactory emFactory;
    private EntityManager em;

    public PersistenceHorsContainerTest(String testName) {
    super(testName);
    }

    @Override
    protected void setUp() throws Exception {
    super.setUp();

    try {
    logger.info("JPA EntityManager pour tests unitaires DEBUT");
    emFactory = Persistence.createEntityManagerFactory("VenteEnLigneClientJavaSE");
    em = emFactory.createEntityManager();
    logger.info("JPA EntityManager pour tests unitaires FIN");
    } catch (Exception ex) {
    ex.printStackTrace();
    fail("Exception pendant l'instantiation du JPA EntityManager.");
    }
    }

    @Override
    protected void tearDown() throws Exception {
    super.tearDown();
    logger.info("Fermeture de la couche Hibernate JPA. DEBUT");
    if (em != null) {
    em.close();
    logger.info("Fermeture de la couche Hibernate JPA. FIN");
    }
    if (emFactory != null) {
    emFactory.close();
    }
    }

    public void testPersistence() {
    try {
    logger.info("debut de testPersistence()");
    try {
    em.getTransaction().begin();
    } catch (Exception zz) {
    logger.info("Erreur Get TRANSACTION ");
    zz.printStackTrace();
    zz.getCause();
    }

    logger.info("em.getTransaction().begin()");

    Utilisateur client = new Utilisateur();
    client.setNom("renard");
    client.setPrenom("lulu");
    BigDecimal fax = new BigDecimal("1115333");
    client.setFax(fax);
    client.setLogin("renard");
    client.setPassword("lulu");
    BigDecimal telephone = new BigDecimal("1115333");
    client.setTelephone(telephone);
    client.setTitre("Mr");
    client.setEmail("renard@lulu.com");
    logger.info("avant persist");
    em.persist(client);
    logger.info("apres persist");

    assertTrue(em.contains(client));

    Commande commande = new Commande();
    commande.setTypeCartecredit("Visa");

    Date aujourdhui = new Date();
    long t = aujourdhui.getTime();

    //java.sql.Date aujourdhuiSQL = new java.sql.Date(t);

    Timestamp aujourdhuiSQL = new Timestamp(t);
    commande.setDatecommande(aujourdhuiSQL);

    // Clé étrangère

    commande.setUtilisateur(client);

    // java.sql.Date expirationDate = java.sql.Date.valueOf( "2010-01-31" );

    Timestamp expirationDate = Timestamp.valueOf("2010-01-31" );
    commande.setDateExpirationCartecredit( expirationDate);
    commande.setNumeroCartecredit("4123654787651234");

    em.persist(commande);
    assertTrue(em.contains(commande));

    Adresse adresse = new Adresse();
    BigDecimal codepostal = new BigDecimal("75000");
    adresse.setCodepostal(codepostal);
    adresse.setDepartement("Paris");
    adresse.setVille("Paris");
    adresse.setPays("France");
    adresse.setRue("Vaugirard");
    BigDecimal numero = new BigDecimal("230");
    adresse.setNumero(numero);

    em.persist(adresse);
    em.remove(adresse);
    assertFalse(em.contains(adresse));

    em.getTransaction().commit();
    logger.info("fin de testPersistence()");
    } catch (Exception ex) {
    em.getTransaction().rollback();
    ex.printStackTrace();
    fail("Exception pendant le test testPersistence");
    }
    }
    }

    et j'ai le message à la console :

    ---------------------------------------------------------------------

    28 janv. 2011 16:27:38 com.eni.dvtejb.client.PersistenceHorsContainerTest setUp
    INFO: JPA EntityManager pour tests unitaires DEBUT
    URL: file:/C:/Users/Georgio/Desktop/Projet%20EJB3/WorkSpace/VenteEnLigneClient/build/classes
    META-INF/orm.xml
    **/*.hbm.xml

    28 janv. 2011 16:27:41 com.eni.dvtejb.client.PersistenceHorsContainerTest setUp
    INFO: JPA EntityManager pour tests unitaires FIN
    28 janv. 2011 16:27:41 com.eni.dvtejb.client.PersistenceHorsContainerTest testPersistence
    INFO: debut de testPersistence()
    28 janv. 2011 16:27:41 com.eni.dvtejb.client.PersistenceHorsContainerTest testPersistence
    INFO: Erreur Get TRANSACTION
    java.lang.UnsupportedOperationException: The user must supply a JDBC connection
    at org.hibernate.connection.UserSuppliedConnectionProvider.getConnection(UserSuppliedConnectionProvider.java:54)
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
    at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
    at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)
    at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)
    at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1289)
    at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:60)
    at com.eni.dvtejb.client.PersistenceHorsContainerTest.testPersistence(PersistenceHorsContainerTest.java:65)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at junit.framework.TestCase.runTest(TestCase.java:168)
    at junit.framework.TestCase.runBare(TestCase.java:134)
    at junit.framework.TestResult$1.protect(TestResult.java:110)
    at junit.framework.TestResult.runProtected(TestResult.java:128)
    at junit.framework.TestResult.run(TestResult.java:113)
    at junit.framework.TestCase.run(TestCase.java:124)
    at junit.framework.TestSuite.runTest(TestSuite.java:232)
    at junit.framework.TestSuite.run(TestSuite.java:227)
    at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
    28 janv. 2011 16:27:41 com.eni.dvtejb.client.PersistenceHorsContainerTest testPersistence
    INFO: em.getTransaction().begin()
    28 janv. 2011 16:27:41 com.eni.dvtejb.client.PersistenceHorsContainerTest testPersistence
    INFO: avant persist
    28 janv. 2011 16:27:41 com.eni.dvtejb.client.PersistenceHorsContainerTest tearDown
    INFO: Fermeture de la couche Hibernate JPA. DEBUT
    28 janv. 2011 16:27:41 com.eni.dvtejb.client.PersistenceHorsContainerTest tearDown
    INFO: Fermeture de la couche Hibernate JPA. FIN

    J'ai l'impression que quelque chose dans mon fichier persistence.xml n'est pas correct mais je ne trouve pas.

    QQ peut il m'aider ?

    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Par défaut Hibernate Oracle11G eclipse
    Re-Bonjour,

    J'ai un peu avance dans mon pb. simplement en retapant la ligne :

    <property name = "hibernate.connection.url" value = "jdbc.oracle.thin:@localhost:1522/RH" />

    dans persistence.xml.

    Mais à présent j'ai le message suivant :

    Caused by: java.sql.SQLException: No suitable driver found for jdbc.oracle.thin:@localhost:1522/RH
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
    ... 25 more

    J'ai charge dans le buildpath ojdbc6.jar, testé avec ojdbc14.jar ...

    Rien n'y fait.

    JE ne comprends vraiment pas ce qui se passe.

    Au secours. En panne depuis 5 jours ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Par défaut Evolution majeure
    Bonjour,

    Toujours à la peine, pas de réponses mais je m'accroche.

    J'ai change toute ma config. change oracle pour mysql. après une configuration laborieuse j'ai avance d'un petit pas majeur puisque maintenant j'ai un nouveau message :


    Caused by: java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:931)
    at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4031)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1296)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2338)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2371)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2163)


    comme si les properties username et password n'étaient pas lues.


    voir détails à :

    > Java > Serveurs, conteneurs, et Java EE
    JBOSS ECLIPSE EJB persistence.xml

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 93
    Par défaut
    Le problème de mysql vient du fait que le serveur n'est pas bien configuré(c'est explicit dans l'exception) il te suffit juste de le reconfigurer grace a l'assistant MYSQL.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Par défaut
    Citation Envoyé par manu11 Voir le message
    Le problème de mysql vient du fait que le serveur n'est pas bien configuré(c'est explicit dans l'exception) il te suffit juste de le reconfigurer grace a l'assistant MYSQL.
    Merci pour cette info. J'essaie dés que je serai chez moi. Mais peux tu m'en dire un ptit peu plus pour m'orienter (connais pas trop MySql)

    en attendant j'ai trouvé une alternative (expliqué dans Forum des professionnels en informatique > Java > Serveurs, conteneurs, et Java EE
    JBOSS ECLIPSE EJB persistence.xml) mais c'est moche...

Discussions similaires

  1. [Helios] Installation d'Hibernate Tools très lente
    Par me123 dans le forum Eclipse
    Réponses: 7
    Dernier message: 25/09/2012, 12h41
  2. Installer Hibernate sous eclipse HELIOS
    Par nypahe dans le forum Frameworks Web
    Réponses: 0
    Dernier message: 03/10/2010, 03h59
  3. [Plugin] Hibernate
    Par speedster dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 26/08/2004, 11h01
  4. Fonctionnement d'Hibernate
    Par coyot dans le forum Hibernate
    Réponses: 12
    Dernier message: 19/05/2004, 19h10
  5. [JDO]Hibernate : Mapping d'un champ auto-incrémenté
    Par brice.antoine dans le forum Hibernate
    Réponses: 4
    Dernier message: 02/04/2004, 10h36

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