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 :

[DRIVER JDBC] Exception incompréhensible


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de joKED
    Profil pro
    Imposteur en chef
    Inscrit en
    Février 2006
    Messages
    339
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Imposteur en chef

    Informations forums :
    Inscription : Février 2006
    Messages : 339
    Par défaut [DRIVER JDBC] Exception incompréhensible
    Bonjour à tous

    Afin de me connecter à une base de donnée Sql Server 2005, j'utilise habituellement une connexion via le driver odbc habituel.
    Puis, étant tombé sur un article expliquant qu'il existait un driver fait spécifiquement pour ce genre de connexions, je m'y suis mis.
    J'ai donc téléchargé le driver JDBC pour sql server 2005, et l'ai tésté dans eclipse, sur un petit programme tout simple.
    Quand je lance mon programme via Eclipse, ça fonctionne nickel.

    Par contre, quand je l'exporte en jar et que je l'execute via java -jar monappli.jar, je me retrouve avec une belle grosse exception, que je n'arrive pa à résoudre malgré mes recherches sur le net.

    Voici le texte retourné par l'exception :

    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
    Exception in thread "main" java.lang.SecurityException: invalid SHA1 signature file digest for com/microsoft/sqlserver/jdbc/SQLServerException.class
            at sun.security.util.SignatureFileVerifier.verifySection(Unknown Source)
     
            at sun.security.util.SignatureFileVerifier.processImpl(Unknown Source)
            at sun.security.util.SignatureFileVerifier.process(Unknown Source)
            at java.util.jar.JarVerifier.processEntry(Unknown Source)
            at java.util.jar.JarVerifier.update(Unknown Source)
            at java.util.jar.JarFile.initializeVerifier(Unknown Source)
            at java.util.jar.JarFile.getInputStream(Unknown Source)
            at sun.misc.URLClassPath$JarLoader$2.getInputStream(Unknown Source)
            at sun.misc.Resource.cachedInputStream(Unknown Source)
            at sun.misc.Resource.getByteBuffer(Unknown Source)
            at java.net.URLClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.access$000(Unknown Source)
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClassInternal(Unknown Source)

    Et là, je sèche ciomplètement. Pourquoi cela fonctionne nickel dans mon Eclipse, et que ça foire aussi lamentablement quand je lance via un .jar ?

    Si vous avez des pistes, je vous en serait reconnaissant, avant que je perde définitivement le peu de cheveux qu'il me reste.


    Java n'étant pas ma tasse de thé ( ), je vous saurais gré de faire preuve de patience et de pédagogie. En gros, je comprends vite, mais il faut m'expliquer longtemps

    Merci de votre aide

    Edit : je viens de me rendre compte qu'il existe un sous forum dédié à jdbc. Si un gentil modo passe par ici, qu'il n'hésite pas à déplacer au bon endroit. Avec toutes mes confuses.

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    bonjour,

    As tu pensé a mettre le jar du drivers dans le classpath de ton lanceur ?
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    Cette erreur est lié au fait de packager des jar signé avec tes propres classes. Dans un premier temps, essaie de mettre tes classes dans un jar et de mettre les autres lib en dependance via le fichier manifest de ton jar de classes.

  4. #4
    Membre très actif Avatar de joKED
    Profil pro
    Imposteur en chef
    Inscrit en
    Février 2006
    Messages
    339
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Imposteur en chef

    Informations forums :
    Inscription : Février 2006
    Messages : 339
    Par défaut
    Citation Envoyé par Alkhan Voir le message
    bonjour,

    As tu pensé a mettre le jar du drivers dans le classpath de ton lanceur ?
    Oui, ça, c'est fait.

    Citation Envoyé par JoloKossovar
    Cette erreur est lié au fait de packager des jar signé avec tes propres classes. Dans un premier temps, essaie de mettre tes classes dans un jar et de mettre les autres lib en dependance via le fichier manifest de ton jar de classes.
    Je veux bien essayer. Mais, euh, à vrai dire, que dois je écrire dans ce fichier manifest (oui, je sais, j'y connais pas grand chose).

    Merci de votre aide

  5. #5
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    exemple de fichier manifest pour le jar de tes classes (ou dependance represente UN jar :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Main-Class: ClassePrincipale
    Class-Path: \package\dependance.jar
    Attention :
    Ton fichier MANIFEST doit obligatoirement se terminer par un retour chariot (retour à la ligne) !
    Fait aussi attention à ce qu'il n'y ait aucun espace à la fin de chaque ligne.

    une fois que tu as crée ce fichier manifest, il faut que tu l'attribue a ton jar :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    jar umf manifestFile fichier.jar
    ou manifestFile est le fichier manifest crée au dessus. Bonne chance ^^

  6. #6
    Membre très actif Avatar de joKED
    Profil pro
    Imposteur en chef
    Inscrit en
    Février 2006
    Messages
    339
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Imposteur en chef

    Informations forums :
    Inscription : Février 2006
    Messages : 339
    Par défaut
    Merci pour ces conseils.

    Je tente la modif et vous tient au courant.

    Edit : ça a tout bien fonctionné. Merci de votre aide avisée.

  7. #7
    Invité de passage
    Inscrit en
    Février 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 1
    Par défaut
    Citation Envoyé par joKED Voir le message
    Bonjour à tous

    Afin de me connecter à une base de donnée Sql Server 2005, j'utilise habituellement une connexion via le driver odbc habituel.
    Puis, étant tombé sur un article expliquant qu'il existait un driver fait spécifiquement pour ce genre de connexions, je m'y suis mis.
    J'ai donc téléchargé le driver JDBC pour sql server 2005, et l'ai tésté dans eclipse, sur un petit programme tout simple.
    Quand je lance mon programme via Eclipse, ça fonctionne nickel.

    Par contre, quand je l'exporte en jar et que je l'execute via java -jar monappli.jar, je me retrouve avec une belle grosse exception, que je n'arrive pa à résoudre malgré mes recherches sur le net.

    Voici le texte retourné par l'exception :

    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
    Exception in thread "main" java.lang.SecurityException: invalid SHA1 signature file digest for com/microsoft/sqlserver/jdbc/SQLServerException.class
            at sun.security.util.SignatureFileVerifier.verifySection(Unknown Source)
     
            at sun.security.util.SignatureFileVerifier.processImpl(Unknown Source)
            at sun.security.util.SignatureFileVerifier.process(Unknown Source)
            at java.util.jar.JarVerifier.processEntry(Unknown Source)
            at java.util.jar.JarVerifier.update(Unknown Source)
            at java.util.jar.JarFile.initializeVerifier(Unknown Source)
            at java.util.jar.JarFile.getInputStream(Unknown Source)
            at sun.misc.URLClassPath$JarLoader$2.getInputStream(Unknown Source)
            at sun.misc.Resource.cachedInputStream(Unknown Source)
            at sun.misc.Resource.getByteBuffer(Unknown Source)
            at java.net.URLClassLoader.defineClass(Unknown Source)
            at java.net.URLClassLoader.access$000(Unknown Source)
            at java.net.URLClassLoader$1.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClass(Unknown Source)
            at java.lang.ClassLoader.loadClassInternal(Unknown Source)

    Et là, je sèche ciomplètement. Pourquoi cela fonctionne nickel dans mon Eclipse, et que ça foire aussi lamentablement quand je lance via un .jar ?

    Si vous avez des pistes, je vous en serait reconnaissant, avant que je perde définitivement le peu de cheveux qu'il me reste.


    Java n'étant pas ma tasse de thé ( ), je vous saurais gré de faire preuve de patience et de pédagogie. En gros, je comprends vite, mais il faut m'expliquer longtemps

    Merci de votre aide

    Edit : je viens de me rendre compte qu'il existe un sous forum dédié à jdbc. Si un gentil modo passe par ici, qu'il n'hésite pas à déplacer au bon endroit. Avec toutes mes confuses.


    Mircosoft a signé le fichier jar par l'intermédiaire de leurs propres outils. Ainsi, lorsque vous essayez d'utiliser le fichier jar directement ou par la signature de votre propre outil et l'utiliser sur votre JNLP donne à ce problème.

    Pour résoudre ce problème, les étapes à suivre.

    1. Extraire le fichier sqljdbc.jar ou sqljdbc4.jar
    2. Goto dossier META-INF
    3. Ouvert MANIFEST.MF et de supprimer toutes les lignes autres que la première ligne et de l'enregistrer
    4. Supprimer les autres fichiers qui existent dans le même dossier
    5. Enfin encore une fois faire un nouveau fichier jar notamment com et META-INF dossier que sqljdbc.jar ou sqljdbc4.jar

    Merci,
    Suresh
    http://sureshdevi.co.in

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Progress / Driver JDBC] Recherche driver Jdbc Progress
    Par shaun_the_sheep dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 17/05/2006, 18h28
  2. [Info] Driver JDBC SQL Server
    Par slymira dans le forum JDBC
    Réponses: 6
    Dernier message: 16/06/2005, 13h26
  3. Driver Jdbc
    Par vijeo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/04/2005, 08h01
  4. [JDBC]recherch driver Jdbc.
    Par vijeo dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 19/04/2005, 08h00
  5. [websphere][jdbc] Installation d'un driver JDBC
    Par bigoudi dans le forum Websphere
    Réponses: 4
    Dernier message: 26/01/2004, 11h37

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