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 :

Chargement dynamiquement Jar JDBC


Sujet :

JDBC Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Chargement dynamiquement Jar JDBC
    Bonjour,
    J'ai besoin de votre aide.J'ai créée une appli qui doit se connecter a une bdd en rentrant tous les parametre besoin a partir d'un fichier xml(user,driverclass,pwd..).Je ne dois pas charger ds mon buildPath mon sqljdbc.jar car il doit etre chargé dynamiquement au lancement du prog (car si le user change le jar du xml l'appli marche tjrs)
    Je n'arrive pas a charger le sqljdbc.jar en java :s:s
    j'ai testé comme sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JarClassLoader jcl = new JarClassLoader();
                    jcl.add(new FileInputStream(newsParam.getConnector().getLocation()));
    Ce code deploi le jar mais lors de l'apel ds le class.forName une erreur apparait :
    Exception in thread "main" java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
    merci de votre aide

  2. #2
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Ton jar n'est pas dans ton classpath. Même si il est chargé dynamiquement il faut qu'il soit présent dans le classpath.
    autant l'hiver éclate que l'hétéroclite
    le vrai geek c'est celui qui croit qu'il y a 1024 mètres dans un kilomètre

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 90
    Points : 80
    Points
    80
    Par défaut
    exact!
    à partir de ton fichier XML, tu reçois seulement une chaine de caractère indiquant l'emplacement du driver ---> "com.microsoft.sqlserver.jdbc.SQLServerDriver"

    alors que le driver (.jar) lui même n'existe pas dans la classpath
    d'où l'exception:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Exception in thread "main" java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci pour ces renseignements, mais cependant il devrait etre possible de charger un .jar dynamiquement
    Exemple : Si dans une appli qui gere des bdd je dois recompilé l'appli entiere car j'ai ajouté seulement un nouveau driver de bdd, comment font les appli type squirrel ou autre...

    :s :s

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 90
    Points : 80
    Points
    80
    Par défaut
    la solution la plus simple c'est de mettre tes jars sous un répertoire fixe
    par exemple "MYAPPLICATION_HOME/jars" où MYAPPLICATION_HOME est le path vers ton application.
    Mais tu dois copier le répertoire jars à chaque fois tu installe ton application sur une machine.


    sinon la solution PRO est de développer son propre ClassLoader qui charge dynamiquement les .class d'un jar

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Tsunamy connaitrais tu des bons exemple de classLoader car en faisant des recherche par moi meme je n'ai rien trouver de bien facile pour un débutant comme moi dans ce domaine?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 90
    Points : 80
    Points
    80
    Par défaut
    La solution n'est pas très évidente
    j'ai trouvé le code suivant FileClassLoader de Jack Harich
    peut être que ça peut t'aider aussi
    bonne chance

Discussions similaires

  1. chargement dynamique driver jdbc
    Par Alt157 dans le forum JDBC
    Réponses: 12
    Dernier message: 29/10/2009, 17h23
  2. Chargement dynamique de Jar
    Par elskwi dans le forum Langage
    Réponses: 1
    Dernier message: 17/04/2008, 15h20
  3. chargement dynamique d'un autre jar
    Par Serik dans le forum Applets
    Réponses: 2
    Dernier message: 19/07/2007, 22h10
  4. Chargement dynamique d'une archive.jar
    Par cfrayer dans le forum Langage
    Réponses: 5
    Dernier message: 29/08/2006, 16h00
  5. [jar]chargement dynamique.
    Par Teddy-htk dans le forum API standards et tierces
    Réponses: 10
    Dernier message: 27/04/2006, 15h19

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