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

JPA Java Discussion :

Simple JPA qui marche Pas !


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 220
    Par défaut
    - Base donnée démarrée, (MySQL)
    - Bean sérialisé avec les Annotations
    - Persistence.XML bien configuré !

    Avec une Classe JAVA (main() ) j'arrive pas à
    dépasser le Pont JPA !

    ça bloque en throwant l'exception suivante :


    org.apache.openjpa.persistence.ArgumentException




    Si qlq un a une idée !!


    Ceci est le fichier persistence.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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence 
    version="1.0" xmlns="<a href="http://java.sun.com/xml/ns/persistence" target="_blank">http://java.sun.com/xml/ns/persistence</a>">
    <persistence-unit name="jpa" transaction-type="RESOURCE_LOCAL">
     
    <!-- PROVIDER -->
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <properties>
    <!-- CLASSES PERSISTENTES -->
    <property name="hibernate.archive.autodetection" value ="class, hbm" />
     
    <!-- CONNEXION JDBC -->
    <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
    <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/test" />
    <property name="hibernate.connection.username" value="jpa" />
    <property name="hibernate.connection.password" value="jpa" />
     
    <!-- CRéATION AUTOMATIQUE DU SCHéMA -->
    <property name="hibernate.hbm2ddl.auto" value="create" />
     
    <!-- DIALECTE -->
    <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
     
    <!-- DATASOURCE C3P0 -->
    <property name="hibernate.c3p0.min_size" value="5" />
    <property name="hibernate.c3p0.max_size" value="20" />
    <property name="hibernate.c3p0.timeout" value="300" />
    <property name="hibernate.c3p0.max_statements" value="50" />
    <property name="hibernate.c3p0.idle_test_period" value="3000" />
    </properties>
     
    </persistence-unit>
    </persistence>
    Le message d'exception est lancé à la ligne 2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    1.  EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpa");
    2.  EntityManager em = emf.createEntityManager();

    et voilà le message d'erreur :


    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
     
     
    16  WARN   [main] openjpa.Runtime - The property named "openjpa.Id" was not recognized and will be ignored, although the name closely matches a valid property called "openjpa.Id".
    63  INFO   [main] openjpa.Runtime - Starting OpenJPA 1.0.1
    Exception in thread "main" <openjpa-1.0.1-r420667:592145 fatal user error> org.apache.openjpa.persistence.ArgumentException: A JDBC Driver or DataSource class name must be specified in the ConnectionDriverName property.
     at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:72)
     at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:803)
     at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:568)
     at org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1221)
     at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:476)
     at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:401)
     at org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:102)
     at org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:82)
     at org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:861)
     at org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:852)
     at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:630)
     at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:169)
     at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
     at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
     at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
     at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
    merci à l avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 74
    Par défaut import
    Fais voir ta classe java perstistante ?
    t'es sur que tu utilise l'annotation javax.persistence.Id ? vérifie tes import, ca m'etonnerait pas qu'il y ait un
    import ...openjpa.Id




    Citation Envoyé par kamaldev Voir le message
    Le message d'exception est lancé à la ligne 2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    1.  EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpa");
    2.  EntityManager em = emf.createEntityManager();

    et voilà le message d'erreur :


    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
     
     
    16  WARN   [main] openjpa.Runtime - The property named "openjpa.Id" was not recognized and will be ignored, although the name closely matches a valid property called "openjpa.Id".
    63  INFO   [main] openjpa.Runtime - Starting OpenJPA 1.0.1
    Exception in thread "main" <openjpa-1.0.1-r420667:592145 fatal user error> org.apache.openjpa.persistence.ArgumentException: A JDBC Driver or DataSource class name must be specified in the ConnectionDriverName property.
     at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:72)
     at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:803)
     at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:568)
     at org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1221)
     at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:476)
     at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:401)
     at org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:102)
     at org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:82)
     at org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:861)
     at org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:852)
     at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:630)
     at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:169)
     at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
     at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
     at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
     at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
    merci à l avance

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 220
    Par défaut
    voici ma Classe persistente :

    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
    package entites;
    import java.io.Serializable;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.Table;
    import javax.persistence.Temporal;
    import javax.persistence.TemporalType;
    import javax.persistence.Version;
    
    @SuppressWarnings("serial")
    @Entity
    @Table(name="personne")
    public class Personne   implements Serializable
    {
       @SuppressWarnings("unused")
       @Id
       @Column(name = "ID", nullable = false)
       @GeneratedValue(strategy = GenerationType.AUTO)
          private Integer id;
       
       
        @SuppressWarnings("unused")
        @Column(name = "VERSION", nullable = false)
        @Version
            private int version;
        
        
        @SuppressWarnings("unused")
        @Column(name = "NOM", length = 30, nullable = false, unique = true)
            private String nom;
         
        + autre champs simple
        + les getters et setters

    openjpa ? est de quel Type? c'est là le problème j'epense...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2008
    Messages : 18
    Par défaut
    Salut
    la configuration que tu as cite en premier
    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
     
    <!-- PROVIDER -->
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <properties>
    <!-- CLASSES PERSISTENTES -->
    <property name="hibernate.archive.autodetection" value ="class, hbm" />
     
    <!-- CONNEXION JDBC -->
    <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
    <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/test" />
    <property name="hibernate.connection.username" value="jpa" />
    <property name="hibernate.connection.password" value="jpa" />
     
    <!-- CRéATION AUTOMATIQUE DU SCHéMA -->
    <property name="hibernate.hbm2ddl.auto" value="create" />
     
    <!-- DIALECTE -->
    <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
     
    <!-- DATASOURCE C3P0 -->
    <property name="hibernate.c3p0.min_size" value="5" />
    <property name="hibernate.c3p0.max_size" value="20" />
    <property name="hibernate.c3p0.timeout" value="300" />
    <property name="hibernate.c3p0.max_statements" value="50" />
    <property name="hibernate.c3p0.idle_test_period" value="3000" />
    est faite pour fonctionner avec HIBERNATE comme moteur JPA. A ce que j'ai vu apres tu utilises openjpa

    Tu as donc deux possibilites

    1 - soit tu passes à hibernate ( chose que je ne saurais trop te conseiller )
    2 - Soit tu configures correctement le persistence-unit avec ce genre de config :
    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
     
        <!-- Unité de persistance -->
        <persistence-unit name="testPU">
            <!--
            <class></class>
    	<class></class>
    	<class></class>
            -->
            <properties>
                <property name="openjpa.TransactionMode" value="local"/>
                <property name="openjpa.ConnectionDriverName" value="oracle.jdbc.driver.OracleDriver"/>
                <property name="openjpa.ConnectionURL" value="jdbc:oracle:thin:@monserveur:1521:testclassifier"/>
                <property name="openjpa.ConnectionUserName" value=""/>
                <property name="openjpa.ConnectionPassword" value=""/>
                <property name="openjpa.jdbc.Schema" value="testclassifier"/>
                <property name="kodo.jdbc.MappingDefaults" value="jpa(ForeignKeyDeleteAction=restrict,JoinForeignKeyDeleteAction=restrict)"/>
            </properties>
        </persistence-unit>
    En esperant que ca puisse t aider

Discussions similaires

  1. script qui marche pas...
    Par jpg dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/10/2004, 14h19
  2. requete(jointure 2 tables) qui marche pas
    Par DaxTaz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/06/2004, 17h50
  3. une comparaison qui marche pas.
    Par gandf dans le forum C++Builder
    Réponses: 7
    Dernier message: 16/02/2004, 15h59
  4. [LG]Split qui marche pas
    Par macluvitch dans le forum Langage
    Réponses: 3
    Dernier message: 30/11/2003, 18h19
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

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