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 :

OpenJPA et Derby dans appli JavaSE6


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Par défaut OpenJPA et Derby dans appli JavaSE6
    Bonjour,

    Je tente actuellement de m'initier aux techniques de persistance.
    J'ai élaboré une base de données embarquée avec Apache Derby et tente de réaliser la persistance des données à partir d'une application JavaSE6 par le biais d'OpenJPA.
    cela ne fonctionne pas pour le moment et je ne parviens pas à cerner le problème.

    Voici le code SQL de création de ma table de test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE  TABLE langue (
      id_langue SMALLINT NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY ,
      nom_langue VARCHAR(50) NOT NULL );
    La classe Langue qui correspond :

    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
    package testderbyopenjpa;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.Column;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
     
    /**
     *
     * @author per_ewan
     */
    @Entity
    public class Langue {
     
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY )
        private int idLangue;
        @Column(name="nom_langue")
        private String nomLangue;
     
        public Langue() {
     
        }
     
     
        public void setIdLangue(int id) {
            idLangue = id;
        }
     
        public int getIdLangue() {
            return idLangue;
        }
     
     
        public void setNomLangue(String nom) {
            nomLangue = nom;
        }
     
        public String getNomLangue() {
            return nomLangue;
        } 
     
    }
    Le fichier persistence.xml que j'ai pris soin de placer dans le répertoire META-INF situé dans le Classpath :

    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 xmlns="http://java.sun.com/xml/ns/persistence" version= "1.0">
        <persistence-unit name="testderby" transaction-type="RESOURCE_LOCAL">
            <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
            <class>testderbyopenjpa.Langue</class>
            <properties>
                <property name="openjpa.ConnectionURL" value="jdbc:derby:/home/le/chemin/TestDerbyOpenJPA/src/testderbyopenjpa/videotek.db" />
                <property name="openjpa.ConnectionDriverName" value="org.apache.derby.jdbc.EmbeddedDriver" />
                <property name="openjpa.jdbc.SynchronizeMappings" value="false" />
            </properties>
        </persistence-unit>
    </persistence>
    La classe de la méthode main qui teste tout ça :

    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
    package testderbyopenjpa;
    import javax.persistence.EntityManagerFactory;
    import javax.persistence.EntityManager;
    import javax.persistence.Persistence;
    import javax.persistence.EntityTransaction;
     
     
    /**
     *
     * @author per_ewan
     */
    public class Main {
     
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
     
            Langue l = new Langue();
            l.setNomLangue("Français");
            EntityManagerFactory emf = null;
            EntityManager em = null;
     
     
     
            try {
     
     
                emf = Persistence.createEntityManagerFactory("testderby");
     
     
                em = emf.createEntityManager();
                EntityTransaction et = em.getTransaction();
     
     
                et.begin();
                em.persist(l);
                et.commit();
     
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                em.close();
                emf.close();
            }
     
        }
     
    }
    Et enfin, la sortie lors de l'exécution :

    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    run:
    263  testderby  INFO   [main] openjpa.Runtime - Starting OpenJPA 1.2.2
    875  testderby  INFO   [main] openjpa.jdbc.JDBC - Using dictionary class "org.apache.openjpa.jdbc.sql.DerbyDictionary".
    <openjpa-1.2.2-r422266:898935 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: There were errors initializing your configuration: <openjpa-1.2.2-r422266:898935 fatal user error> org.apache.openjpa.util.UserException: A connection could not be obtained for driver class "org.apache.derby.jdbc.EmbeddedDriver" and URL "jdbc:derby:/home/le/chemin/TestDerbyOpenJPA/src/testderbyopenjpa/videotek.db".  You may have specified an invalid URL.
            at org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:256)
            at org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:242)
            at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:692)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:616)
            at org.apache.openjpa.lib.conf.ConfigurationImpl.instantiateAll(ConfigurationImpl.java:288)
            at org.apache.openjpa.conf.OpenJPAConfigurationImpl.instantiateAll(OpenJPAConfigurationImpl.java:1432)
            at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:646)
            at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:183)
            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)
            at testderbyopenjpa.Main.main(Main.java:35)
    Caused by: java.sql.SQLException: Failed to start database '/home/le/chemin/TestDerbyOpenJPA/src/testderbyopenjpa/videotek.db', see the next exception for details.
            at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
            at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
            at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
            at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
            at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown Source)
            at org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(Unknown Source)
            at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
            at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown Source)
            at org.apache.derby.impl.jdbc.EmbedConnection40.<init>(Unknown Source)
            at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source)
            at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
            at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)
            at org.apache.openjpa.jdbc.schema.SimpleDriverDataSource.getConnection(SimpleDriverDataSource.java:81)
            at org.apache.openjpa.jdbc.schema.SimpleDriverDataSource.getConnection(SimpleDriverDataSource.java:60)
            at org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:112)
            at org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:93)
            at org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:234)
            ... 14 more
    Caused by: java.sql.SQLException: Failed to start database '/home/le/chemin/TestDerbyOpenJPA/src/testderbyopenjpa/videotek.db', see the next exception for details.
            at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
            at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
            ... 31 more
     
            at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:196)
            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)
            at testderbyopenjpa.Main.main(Main.java:35)
    Caused by: java.lang.RuntimeException: There were errors initializing your configuration: <openjpa-1.2.2-r422266:898935 fatal user error> org.apache.openjpa.util.UserException: A connection could not be obtained for driver class "org.apache.derby.jdbc.EmbeddedDriver" and URL "jdbc:derby:/home/le/chemin/TestDerbyOpenJPA/src/testderbyopenjpa/videotek.db".  You may have specified an invalid URL.
            at org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:256)
            at org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:242)
            at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:692)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:616)
            at org.apache.openjpa.lib.conf.ConfigurationImpl.instantiateAll(ConfigurationImpl.java:288)
            at org.apache.openjpa.conf.OpenJPAConfigurationImpl.instantiateAll(OpenJPAConfigurationImpl.java:1432)
            at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:646)
            at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:183)
            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)
            at testderbyopenjpa.Main.main(Main.java:35)
    Caused by: java.sql.SQLException: Failed to start database '/home/le/chemin/TestDerbyOpenJPA/src/testderbyopenjpa/videotek.db', see the next exception for details.
            at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source)
            at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
            at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source)
            at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source)
            at org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Unknown Source)
            at org.apache.derby.impl.jdbc.EmbedConnection.bootDatabase(Unknown Source)
            at org.apache.derby.impl.jdbc.EmbedConnection.<init>(Unknown Source)
            at org.apache.derby.impl.jdbc.EmbedConnection30.<init>(Unknown Source)
            at org.apache.derby.impl.jdbc.EmbedConnection40.<init>(Unknown Source)
            at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source)
            at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source)
            at org.apache.derby.jdbc.AutoloadedDriver.connect(Unknown Source)
            at org.apache.openjpa.jdbc.schema.SimpleDriverDataSource.getConnection(SimpleDriverDataSource.java:81)
            at org.apache.openjpa.jdbc.schema.SimpleDriverDataSource.getConnection(SimpleDriverDataSource.java:60)
            at org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:112)
            at org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:93)
            at org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:234)
            ... 14 more
    Caused by: java.sql.SQLException: Failed to start database '/home/le/chemin/TestDerbyOpenJPA/src/testderbyopenjpa/videotek.db', see the next exception for details.
            at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source)
            at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source)
            ... 31 more
     
            at org.apache.openjpa.lib.conf.ConfigurationImpl.instantiateAll(ConfigurationImpl.java:302)
            at org.apache.openjpa.conf.OpenJPAConfigurationImpl.instantiateAll(OpenJPAConfigurationImpl.java:1432)
            at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:646)
            at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:183)
            ... 5 more
    Exception in thread "main" java.lang.NullPointerException
            at testderbyopenjpa.Main.main(Main.java:46)
    Java Result: 1
    BUILD SUCCESSFUL (total time: 6 seconds)

    Ai-je oublié quelque chose ? J'accède sans problème à cette base de données avec la commande suivante avec l'outil ij de Derby :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ij> connect 'jdbc:derby:/home/le/chemin/TestDerbyOpenJPA/src/testderbyopenjpa/videotek.db';

  2. #2
    Futur Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Par défaut Up ?
    Up

Discussions similaires

  1. [Analysis Services] Cube et KPI dans appli asp.net
    Par enrique44 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/08/2007, 14h16
  2. exceptions pas visible dans appli
    Par michaelbob dans le forum Langage
    Réponses: 7
    Dernier message: 20/09/2006, 09h36
  3. horloge dans appli
    Par gsmdu62 dans le forum Delphi
    Réponses: 6
    Dernier message: 29/05/2006, 09h37
  4. [NetBeans] Module Derby dans NetBeans 5.0
    Par Grand sorcier dans le forum NetBeans
    Réponses: 4
    Dernier message: 27/03/2006, 12h45
  5. [VB.NET] Ouvrir fichier dans appli par double-clic dessus
    Par vynce dans le forum Windows Forms
    Réponses: 4
    Dernier message: 29/03/2005, 16h43

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