2009-09-25 4 views
0

J'utilisais auparavant MS-Access et Tomcat 6.0 pour mon test d'application et cela fonctionnait correctement.Comment utiliser mySQL avec Apache Tomcat 6

Maintenant, je veux utiliser la base de données MySQL via Apache Tomcat 6.0. J'ai un serveur WAMP installé sur mon ordinateur et je veux me connecter au serveur mySQL. J'ai créé avec succès une base de données à ce sujet. J'ai mis mysql-connector-java-5.1.9, mysql-5.0.85-win32, le driver mySQL lib de tomcat 6.0 ainsi que celui de mon application pour m'assurer qu'il est dans classpath. J'ai le code suivant dans mon jsp.

Driver d = (Driver)Class.forName("com.mysql.jdbc.Driver").newInstance(); 
        Class.forName("com.mysql.jdbc.Driver"); 
Connection con=DriverManager.getConnection("jdbc:mysql:3306///tmp/mysql.sock", 
         "admin", "admin"); 



[wampmysqld] 
port  = 3306 
socket  = /tmp/mysql.sock 

Je reçois erreur

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233) 
    at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128) 
    at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66) 
    at java.lang.ClassLoader.loadClassInternal(Unknown Source) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Unknown Source) 
    at org.apache.jsp.insert_jsp._jspService(insert_jsp.java:78) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859) 
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:574) 
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1527) 
    at java.lang.Thread.run(Unknown Source) 

Quels changements dois-je faire dans mon fichier web.xml/gestionnaire de serveur?

+0

Vous avez déjà posé la même question quatre fois et obtenu la même réponse à chaque fois. Que voulez-vous de plus? –

Répondre

0

con = DriverManager.getConnection ("jdbc: mysql: // localhost: 3306/projet", "admin", "admin");

Notez qu'il y avait: manquant avant l'hôte local.

1

Vous devez mettre le fichier pilote mysql JAR dans apache-tomcat/common/lib/

Vous pouvez le télécharger à partir http://dev.mysql.com/downloads/connector/j/5.1.html

Vous devez mettre l'y mysql-connector.jar

+0

J'ai mysql-connecteur-java-5.1.9, mysql-5.0.85-win32, pilote MS SQL à la fois \ Apache Software Foundation \ Tomcat 6.0 \ lib et dans webapps \ application \ WEB-INF \ lib – Chava

+0

Avez-vous essayé l'ajouter à common/lib? –

1

Avez-vous téléchargé le pilote JDBC MySQL

http://dev.mysql.com/doc/refman/5.0/en/connector-j.html 

Est-ce fichier jar dans votre classpath? L'erreur que vous affichez indique que le pilote MySQL JDBC n'est PAS dans votre classpath.

1

J'ai mis mysql-connector-java-5.1.9, mysql-5.0.85-win32, pilote MS SQL dans lib de tomcat 6.0 comme wel comme celle de mon application pour vous assurer qu'il est en classpath.

D'abord, quels sont les fichiers réels?

  • mysql-connector-java-5.1.9 - Je suppose que c'est le pilote JDBC - le fichier réel doit être mysql-connector-java-5.1.9-bin.jar
  • mysql-5.0 .85-win32 - Qu'est-ce que c'est? L'installateur MySql? Si oui, vous n'en avez pas besoin.
  • Pilote MS sql - Je pensais que vous vouliez MySQL?

Deuxième - "en lib de tomcat 6.0 aussi bien que celui de mon application pour m'assurer qu'il est dans classpath." - Ne faites pas cela ... il doit être dans l'un ou l'autre - pas les deux.

Troisième - "jdbc:mysql:3306///tmp/mysql.sock" - n'est pas une URL de connexion JDBC correcte - il est quelque chose comme - jdbc:mysql://localhost:3306/databaseName

Vous devriez être en mesure de copier mysql-connector-java-5.1.9-bin.jar en soit votre répertoire Tomcat lib ou empaqueté dans le répertoire lib de votre WAR, puis utilisez la bonne chaîne de connexion JDBC pour vous connecter à cette base de données dans votre code.

Il y a une page sur comment configurer plusieurs bases de données (y compris MySQL) en tant que JNDI DataSource in Tomcat 6.0 - c'est au-delà de ce que vous essayez de faire ici, mais les étapes initiales sont les mêmes .

+0

J'ai essayé de garder mysql-connector-java-5.1.9-bin.jar dans tomcat \ lib ou application \ web-inf \ lib mais maintenant je reçois erreur comme java.sql.SQLException: Aucun pilote approprié trouvé pour jdbc : mysql: 3306 // localhost: 3306/projet \t à java.sql.DriverManager.getConnection (Source inconnue) \t à java.sql.DriverManager.getConnection (Source inconnue) – Chava

+0

Regardez le troisième point ci-dessus - le: 3306 est la partie port de l'URL - ne fait pas partie du protocole. – Nate

+0

Je veux dire que je reçois une erreur de suivi. java.sql.SQLException: Aucun pilote approprié trouvé pour jdbc: mysql // localhost: 3306/project Est-ce un problème de classpath ?? J'utilise un autre fichier jar (Imageio) qui est conservé dans tomcat \ lib et qui fonctionne correctement. J'utilise maintenant le code suivant. Trouvez-y une erreur. Note: J'utilise mysql du serveur wamp. Pilote d = (pilote) Class.forName ("com.mysql.jdbc.Driver"). NewInstance(); Class.forName ("com.mysql.jdbc.Driver"); Connexion con = DriverManager.getConnection ("jdbc: mysql // localhost: 3306/projet", "admin", "admin"); – Chava