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 AS400 : No suitable Driver


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Par défaut Connexion AS400 : No suitable Driver
    Bonjour,

    j'essaie de créer une classe de connexion à un AS400. Lorsque je mets mon code dans le main, tout marche nickel, mais des que passe dans des fonctions de classe j'ai l'erreur : No suitable driver.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class ConnexionAS400 {
     
    	public static void main(String[] args) {
     
    		try {
    			Class.forName("com.ibm.as400.access.AS400JDBCDriver");
    			DriverManager.getConnection("monURL", "monLogin", "monPass");
    		}catch(Exception e{
    			e.printStackTrace();
    		}
    }
    ça marche

    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
     
    public class ConnexionAS400 {
     
    	public ConnexionAS400(){
     
    		try{
    			Class.forName("com.ibm.as400.access.AS400JDBCDriver");
    			DriverManager.getConnection("monURL", "monLogin", "monPass");
    		}catch(Exception e){ e.printStackTrace(); }
     
    	}
     
    	public static void main(String[] args) {
     
    		try {
    			ConnexionAS400 as400 = new ConnexionAS400();
    		}catch(Exception e{
    			e.printStackTrace();
    		}
    }
    marche pas

    java.sql.SQLException: No suitable driver
    at java.sql.DriverManager.getConnection(DriverManager.java:532)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at ConnexionAS400.ConnexionAS400.openCon(ConnexionAS400.java:28)
    at ConnexionAS400.ConnexionAS400.main(ConnexionAS400.java:77)
    java.lang.NullPointerException
    at ConnexionAS400.ConnexionAS400.execQuery(ConnexionAS400.java:39)
    at ConnexionAS400.ConnexionAS400.main(ConnexionAS400.java:78)
    java.lang.NullPointerException
    at ConnexionAS400.ConnexionAS400.performQuery(ConnexionAS400.java:50)
    at ConnexionAS400.ConnexionAS400.main(ConnexionAS400.java:81)
    erreur générée

    Je comprends pas pourquoi ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 139
    Par défaut
    Deja est-il vraiment necessaire de mettre le constructeur
    new ConnexionAS400() ds un bloc try catch, ds la seconde variante?

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Par défaut
    c'est pas ça qui génère l'erreur.

    je suis passé par l'intermédiaire d'une autre classe et maintenant ça marche.

    Code de la classe :
    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
     
    import java.sql.*;
    import java.util.*;
     
    class DriverShim implements Driver {
        private Driver driver;
     
        DriverShim(Driver d) {
            this.driver = d;
        }
        public boolean acceptsURL(String u) throws SQLException {
            return this.driver.acceptsURL(u);
        }
        public Connection connect(String u, Properties p) throws SQLException {
            return this.driver.connect(u, p);
        }
        public int getMajorVersion() {
            return this.driver.getMajorVersion();
        }
        public int getMinorVersion() {
            return this.driver.getMinorVersion();
        }
        public DriverPropertyInfo[] getPropertyInfo(String u, Properties p) throws SQLException {
            return this.driver.getPropertyInfo(u, p);
        }
        public boolean jdbcCompliant() {
            return this.driver.jdbcCompliant();
        }
    }
    Utilisation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    URL u = new URL("jar:file:/jt400.jar!/");
                String classname = sDriver;
                URLClassLoader ucl = new URLClassLoader(new URL[] { u });
                Driver d = (Driver)Class.forName(classname, true, ucl).newInstance();
                DriverManager.registerDriver(new DriverShim(d));
                con = DriverManager.getConnection(sUrl, sLogin, sPassword);
    maintenant tout marche

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/09/2011, 10h34
  2. Réponses: 2
    Dernier message: 15/04/2009, 11h42
  3. Connexion JDBC et JNDI - Driver not suitable
    Par ginkas31 dans le forum JDBC
    Réponses: 1
    Dernier message: 04/02/2008, 17h14
  4. Connexion AS400
    Par magnetyk dans le forum API standards et tierces
    Réponses: 19
    Dernier message: 20/10/2005, 10h32

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