2012-01-08 21 views
12

Sto sviluppando un'applicazione Web utilizzando Maven Spring e Hibernate e ho bisogno di creare uno schema utilizzando Hibernate per il quale ho avuto il seguente nel mio pom.xml per connettersi al database MySQL 5.5 .Classe JDBC Driver non trovata: com.mysql.jdbc.Driver

<!-- MySql 5.5 Connector --> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.15</version> 
    </dependency> 

Questo importati mysql-connector-java-5.1.15.jar nel mio Libraries sotto Maven Dependencies ma quando provo a connettersi al database che mi dà Exception in thread "main" org.hibernate.HibernateException: JDBC Driver class not found: com.mysql.jdbc.Driver.

Ho fatto questo come migliaia di miliardi di volte, ma l'ho fatto quando non ero abituato a usare Maven per gestire le mie dipendenze e costruire il progetto. Ho appena usato lo stesso file jar nella cartella lib di uno Dynamic Web Project in Eclipse IDE.

Qualcuno potrebbe dirmi cosa mi manca qui e cos'altro ho bisogno di avere questo barattolo nel mio percorso di costruzione?

Grazie.

risposta

15

Per iniziare, il jar che ho bisogno di connettere a MySQL 5.5 avrebbe dovuto essere mysql-connector-java-5.1.15-bin.jar ma non mysql-connector-java-5.1.15.jar. In secondo luogo, questo jar non è disponibile nel repository di Maven, quindi ho dovuto aggiungerlo manualmente al mio repository di Maven e poi aggiunto come dipendenza nel mio pom.xml.

Aggiunta mysql-connector-java-5.1.15-bin.jar al repository maven locale

mvn install:install-file -Dfile=C:\Libraries\mysql-connector-java-5.1.15-bin\mysql-connector-java-5.1.15-bin.jar -DgroupId=mysql -DartifactId=mysql-connector-java -Dversion=5.1.15-bin -Dpackaging=jar 

e quindi aggiungendo la seguente dipendenza pom.xml del progetto.

<!-- MySql 5.5 Connector --> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.15-bin</version> 
    </dependency> 
+1

I JAR senza il suffisso -bin del repository Maven funzionano bene, sto usando 5.1.20 anch'io. Forse non è il nome del JAR, che in realtà non ha importanza, ma il contenuto che è cambiato dal primo che hai usato per il secondo. Chiarire questo probabilmente renderebbe la risposta un po 'migliore. –

2

Decomprimere il file JAR generato. C'è una cartella WEB-INF in. Quindi controlla se mysql-connector-java-5.1.15.jar esiste in questo WEB-INF/lib.

+0

La struttura dell'applicazione è stata effettuata da maven per java webapp, perché i barattoli di dipendenza dei maven dovrebbero essere nella cartella lib all'interno di WEB-INF? Non intendi una cartella WEB-INF nel 'mysql-connector-java-5.1.15.jar' decompresso, vero? Cosa mi manca? – skip

+0

Mi dà lo stesso errore anche se configuro manualmente il percorso di costruzione aggiungendo 'mysql-connector-java-5.1.15.jar' al percorso di build, che non sono sicuro se avrei dovuto farlo anche con il Maven progetto webapp come con maven vedo le dipendenze nelle 'risorse Java'. – skip

+0

Sto solo generando lo schema, non penso che la cartella lib in WEB-INF debba avere qualcosa a che fare con esso? Non posso credere di essermi bloccato. – skip

6

Grazie per le risposte di cui sopra - solo un commento per gli utenti di NetBeans: (nomi da sostituire con le versioni)

  1. il vaso MySQL può essere scaricato here
  2. mvn eseguibile può essere trovato a c:\Program Files\NetBeans 7.2.1\java\maven\bin
  3. eseguito set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_10
  4. Quindi il comando precedente funzionerebbe: mvn install:install-file -Dfile=mysql-connector-java-5.1.15-bin.jar -DgroupId=mysql -DartifactId=mysql-connector-java -Dversion=5.1.15-bin -Dpackaging=jar
  5. pacchetto installato è stato trovato nel repository m2 nella vostra cartella home
1

La mia soluzione di lavoro

<dependency> 
    <groupId>mysql</groupId> 
    <artifactId>mysql-connector-java</artifactId> 
    <version>5.1.18</version> 
</dependency> 

aggiungendo sopra dipendenza pom.xml opere per me ...

0

Add sottocodice al file pom.xml

<dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.6</version> 
    </dependency> 
Problemi correlati