[Java]JDBC driver voor MySQL: "No suitable driver"

Pagina: 1
Acties:
  • 106 views sinds 30-01-2008
  • Reageer

  • kasper_vk
  • Registratie: Augustus 2002
  • Laatst online: 08-04-2025
Ik probeer, voor een Java-webapp die draait op JBoss, een connectie te leggen naar een MySQL database. Die DB staat op een MySQL serverm welke draait op dezelfde machine als de JBoss server.

Ik krijg echter steeds de foutmelding:
code:
1
2
3
4
5
15:32:29,106 INFO  [STDOUT] java.sql.SQLException: No suitable driver
15:32:29,106 INFO  [STDOUT]     at java.sql.DriverManager.getConnection(DriverManager.java:532)
15:32:29,106 INFO  [STDOUT]     at java.sql.DriverManager.getConnection(DriverManager.java:171)
15:32:29,106 INFO  [STDOUT]     at db.MagazijnDatabase.setupConnection(MagazijnDatabase.java:80)
15


Ik gebruik de volgende Java code om de connectie te maken:
Java:
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
    protected void setupConnection() throws Exception {
        String driver = Configuratie.getWebwinkelDBDriver();
        String path = Configuratie.getWebwinkelDBPath();
        String user = Configuratie.getWebwinkelDBName();
        String password = Configuratie.getWebwinkelDBPassword();
        
        System.out.println("driver = " + driver);
        System.out.println("path = " + path);
         
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
            System.out.println("LADEN DRIVER MAGAZIJNDATABASE SUCCESVOL...");           
        } catch (Exception e) {
            System.out.println("LADEN DRIVER MAGAZIJNDATABASE FAALDE");
            throw e;
        }

        try {
            this.connection = DriverManager.getConnection(path, user, password);
            System.out.println("CONNECTEN MAGAZIJNDATABASE SUCCESVOL...");
        } catch (Exception e) {
            System.out.println("CONNECTEN MAGAZIJNDATABASE FAALDE");
            throw e;
        }
    }

De volgende parameters worden gebruikt:
code:
1
2
15:32:29,106 INFO  [STDOUT] driver = com.mysql.jdbc.Driver
15:32:29,106 INFO  [STDOUT] path = jdbc:mysql://localhost:3306/magazijn

De toepassing maakt tevens gebruik van een Microsoft SQL database, en daatmee komt de connectie volgens dezelfde manier wel tot stand. De gebrukte methode heb ik verder al volop geverifieert met eerdere topics hier over MySQL+JDBC en met JDBC / MySQL tutorials (gevonden via google).

De driver (mysql-connector-java-3.0.11-stable-bin.jar) staat in de lib directie van de JBoss server; het laden van de driver lijkt danook wel goed te gaan.

Iemand enig idee wat er mis kan zijn?

The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' but 'That's funny...'


  • yrew
  • Registratie: Augustus 2001
  • Laatst online: 18:31
<edit>
sorry.

*mental note to myself* read before you post.

<edit2> toch denk ik dat de jar niet geladen wordt. Deze melding krijg ik namelijk alleen als de jar niet geladen wordt. Probeer anders eens voor de gein een andere class uit die jar te initieren, als je dan een noClassDefFound error krijgt dan wordt de jar zeker niet geladen.

[ Voor 163% gewijzigd door yrew op 12-11-2004 15:53 ]

Groetjes


  • kasper_vk
  • Registratie: Augustus 2002
  • Laatst online: 08-04-2025
Het lijkt erop dat het niet gaat om het niet kunnen vinden van de JAR.

Het gaat overigens ook fout op de Apache webserver.

Ik heb de jar inmiddels staan in:
  • WEB-INF/lib
  • sdk/lib
  • jre/lib
  • apache/shared/lib
  • apache/server/lib
  • jboss-3.2.3/server/default/lib
  • jboss-3.2.3/lib
Maar dat veranderd de situatie niet. Kasper gaat weer verder zoeken...

[ Voor 17% gewijzigd door kasper_vk op 12-11-2004 16:23 ]

The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' but 'That's funny...'


  • yrew
  • Registratie: Augustus 2001
  • Laatst online: 18:31
Heb je geprobeerd een andere class uit die jar te instantiëren?

Groetjes


  • kasper_vk
  • Registratie: Augustus 2002
  • Laatst online: 08-04-2025
Ja, het lijkt er toch op dat die JAR niet gevonden wordt. Een andere class instantieren gaat ook niet; met opzet een niet bestaand class proberen te laden geeft ook dezelfde melding.

Heb nog gecheckt; het path naar de jar staat in het classpath.

The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' but 'That's funny...'


  • LAN
  • Registratie: Oktober 2000
  • Niet online

LAN

Probeer dit eens:
code:
1
Class.forName("com.mysql.jdbc.Driver").newInstance();


in plaats van: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();

edit: Zie ook de documentatie bij de MySQL driver
http://dev.mysql.com/doc/connector/j/en/#id2486573

[ Voor 29% gewijzigd door LAN op 12-11-2004 16:49 ]


  • bloody
  • Registratie: Juni 1999
  • Laatst online: 09:53

bloody

0.000 KB!!

Haal die newInstance() eens van je Class.forName af. De forname zou al voldoende moeten zijn.

nope


  • Remenic
  • Registratie: Juni 2001
  • Laatst online: 12-12-2025
bloody schreef op vrijdag 12 november 2004 @ 19:47:
Haal die newInstance() eens van je Class.forName af. De forname zou al voldoende moeten zijn.
newInstance() wordt wel aangeraden omdat er een bug in sommige JRE's zit waardoor het niet zou kunnen werken op die betreffende JRE's.

  • yrew
  • Registratie: Augustus 2001
  • Laatst online: 18:31
[b]LAN schreef op vrijdag 12 november 2004 @ 16:44
in plaats van: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
compleet overheen gelezen.

Groetjes


  • kasper_vk
  • Registratie: Augustus 2002
  • Laatst online: 08-04-2025
LAN schreef op vrijdag 12 november 2004 @ 16:44:
Probeer dit eens:
code:
1
Class.forName("com.mysql.jdbc.Driver").newInstance();


in plaats van: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();

edit: Zie ook de documentatie bij de MySQL driver
http://dev.mysql.com/doc/connector/j/en/#id2486573
8)7 Ik geloof dat ik me een potje ga zitten schamen dit weekend... :X ;(

Ik vrees namelijk dat ik daar zelf ook al die tijd overheen heb gelezen...
De andere database (MS SQL db) maakt namelijk wel gebruik van de drivernaam die uit de configuratie komt... Deze code komt rechtstreeks uit een ander project, en voor dat copy+patse werk wordt ik nu gestraft :|

Het gaat om een werk-opdracht, dus ik kan dat helaas pas maandag verifieren...
In ieder geval mucho _/-\o_ voor de oplettendheid en de vele reacties op dit beschamenswaardige probleem! |:(

The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' but 'That's funny...'

Pagina: 1