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

JDBC Java Discussion :

Connexion par JDBC impossible


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Par défaut Connexion par JDBC impossible
    Salut à tous!

    Je dois me connecter à une base de données Progress (SGBD assez peu utilisé en France, je m'en rends bien compte quand j'ai un problème!) via JDBC.

    Pour cela, j'utilise le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Class.forName ("com.progress.sql.jdbc.JdbcProgressDriver");
    java.util.Properties prop = new java.util.Properties();
    prop.put("user", userid);
    prop.put("password", passwd);
     
    Connection con = DriverManager.getConnection (url, prop);
    Ce code devrait normalement fonctionner (pris dans la documentation JDBC de Progress).

    J'utilise l'IDE Eclipse.

    Pour faire fonctionner ce code, il faut au préalable rajouter deux JAR dans le classpath. Sous Eclipse, j'ai donc fait "import external JAR".

    De plus, il faut faire pointer le PATH vers un répertoire contenant les librairies (des DLL) nécessaires. Sous Eclipse, j'ai donc rajouté des arguments à la machine virtuelle ("Run.../Arguments/VM Arguments), j'ai mis : -Djava.library.path="C:\Progress\DLCV100B\bin" où C:\Progress\DLCV100B\bin est le répertoire contenant normalement TOUTES les librairies nécessaires.

    Si je ne mets pas ce répertoire en argument, il est impossible d'exécuter bout de code car la librairie JdbcProgress.dll ne peut pas se charger.

    Mais voila, lorsque j'exécute en paramétrant tout comme il fait, j'ai un message d'erreur qui me dit qu'une DLL est absente et que le programme doit s'arrêter... Pourtant la première DLL (JdbcProgress.dll) a l'air de bien se charger et que la DLL provoquant une erreur se trouve bien dans C:\Progress\DLCV100B\bin.

    A votre avis, que dois-je faire? Est-ce que cela viendrait de mon code? Ou est-ce que la dll JdbcProgress.dll contient des erreurs? Ou alors faut-il que je paramètre quelque chose de plus??

    Au secours, là je suis vraiment perdu!

    Je vous remercie par avance de votre aide!

    A+

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il faudrait quelques infos supplémentaire :
    • La valeur de ton library-path une fois que ton application est démarré. En code cela donne :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      System.out.println( System.getProperty("java.library.path") );
    • Ton message d'erreur doit surement être une exception : il nous faudrait le stacktrace complet (e.printStacktrace()).


    a++

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Par défaut
    Ok, voila toutes les précisions :

    Pour le classpath, ce bout de code m'affiche :
    CLASSPATH : C:\Progress\DLCV100B\bin

    Pour ce qui est du stacktrace, en fait, pour plus de précision en plus du stacktrace, j'ai utilisé le bout de code suivant qui me permet d'avoir plus de détails lors de l'exécution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    java.io.PrintStream pStream = null;
    pStream = new java.io.PrintStream(System.out, true);
    DriverManager.setLogStream(pStream);
    Voici donc tous le trace de l'exécution (je mets des balises [CODE] même si ca en est pas car je trouve que c'est plus facile à lire ):
    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
    DriverManager.getConnection("jdbc:JdbcProgress:T:rouge:5023:evolubat")
        trying driver[className=com.progress.sql.jdbc.JdbcProgressDriver,com.progress.sql.jdbc.JdbcProgressDriver@b8df17]
    *Driver.connect (jdbc:JdbcProgress:T:rouge:5023:evolubat)
    JDBC to Progress: Checking security
    No SecurityManager present, assuming trusted application/applet
    JDBCOPENEDGE 1.1012
    Current Date/Time: Mon Jun 25 11:58:32 CEST 2007
    Loading JdbcProgress library
    ******************java.library.path is C:\Progress\DLCV100B\bin
    ******************java.class.path is C:\Documents and Settings\mickael\workspace\TestConnexionBddProgress;C:\Progress\DLCV100B\java\jdbc.jar;C:\Progress\DLCV100B\java\progress.jar
    Unable to load JdbcProgress library
    C:\Progress\DLCV100B\bin\JdbcProgress.dll: Can't find dependent libraries
    Unable to load JdbcProgress library
    Unable to allocate environment
    Returning from initialize --- JdbcProgressDriver.java
    java.sql.SQLException: Unable to load JdbcProgress library
    	at com.progress.sql.jdbc.JdbcProgress.<init>(JdbcProgress.java:162)
    	at com.progress.sql.jdbc.JdbcProgressDriver.initialize(JdbcProgressDriver.java:321)
    	at com.progress.sql.jdbc.JdbcProgressDriver.connect(JdbcProgressDriver.java:155)
    	at java.sql.DriverManager.getConnection(DriverManager.java:512)
    	at java.sql.DriverManager.getConnection(DriverManager.java:140)
    	at testBdd.ProgressTest.main(ProgressTest.java:104)
    getConnection: no suitable driver
    java.sql.SQLException: No suitable driver
    	at java.sql.DriverManager.getConnection(DriverManager.java:532)
    	at java.sql.DriverManager.getConnection(DriverManager.java:140)
    	at testBdd.ProgressTest.main(ProgressTest.java:104)
    SQLException: SQLState(08001)

  4. #4
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Visiblement, ce n'est pas un problème lié à java mais au fait que la DLL 'JdbcProgress' ne trouve pas les sous-dll dont elle a besoin pour fonctionner.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 83
    Par défaut
    Ouais c'est bien ce que je me disais... Merci!

    Mais, est-ce que ça pourrait venir d'une mauvaise configuration de Java (que ce soit de la variable PATH ou CLASSPATH par exemple) ?
    Parce que me semble-t-il j'ai fait tout ce qui était recommandé dans la documentation officielle...

    Ou ça viendrait plutôt d'une erreur dans la DLL à votre avis??

  6. #6
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jason69
    Mais, est-ce que ça pourrait venir d'une mauvaise configuration de Java (que ce soit de la variable PATH ou CLASSPATH par exemple) ?
    Je pense que le problème vient de ton "Librairie Path", étant donné qu'il ne comporte que le répertoire C:\Progress\DLCV100B\bin il ne peut charger que les fichiers *.dll de ce répertoire...


    Essayes d'y rajouter le PATH :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -Djava.library.path="%PATH%;C:\Progress\DLCV100B\bin"
    Ou dans l'assisant d'eclipse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -Djava.library.path="${env_var:PATH};C:\Progress\DLCV100B\bin"

    Sinon tu pourrais simplement rajouter C:\Progress\DLCV100B\bin dans ton PATH (par défaut le "Library Path" correspond au PATH).

    a++

    Rappel : Les modifications des variables d'environnements systèmes neccessite le redémarrage des applications pour être prise en compte...

Discussions similaires

  1. connexion via jdbc en localhost mais pas par ip
    Par allezlolo dans le forum JDBC
    Réponses: 7
    Dernier message: 27/07/2009, 21h43
  2. connexion entre java et mysql par jdbc odbc
    Par langreth dans le forum JDBC
    Réponses: 11
    Dernier message: 23/04/2008, 00h17
  3. Connexion mysql par jdbc
    Par Photon- dans le forum Installation
    Réponses: 5
    Dernier message: 03/03/2008, 11h59
  4. Connexion par TCP/IP impossible sur une deuxième instance
    Par sdelaunay dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 25/08/2006, 23h24
  5. [JDBC] connexion SQL Server impossible
    Par blaiseac dans le forum JDBC
    Réponses: 10
    Dernier message: 27/10/2005, 15h58

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