Jdbc mysql erreur de connection

tic42 Messages postés 4 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 27 juillet 2004 - 27 juil. 2004 à 15:39
tic42 Messages postés 4 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 27 juillet 2004 - 27 juil. 2004 à 16:45
Bonjour
voila j'ai un programme qui se connecte à une base de donnée qui fonctionne mais maintenant je l'ai transformé pour en faire un servlet et j'obtient alors une erreur (donc pas de probleme de driver?)

Je travail sous windows 2000 avec tomcat

la console me dit

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
et une erreur lors de Class.forName(DriverClass).newInstance();

et dans ma page web :

java.lang.NullPointerException
at Requete.service(Requete.java:99)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:536

A vrai dire je ne m'y connait pas beaucoup mais ca fais deja 6heures que je me prend la tête dessus sans comprendre d'ou viennent ces erreures, alors merci infiniment si quelqu'un pouvait m'aider à m'en sortir :)

4 réponses

tic42 Messages postés 4 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 27 juillet 2004
27 juil. 2004 à 15:45
errata
Voici le code source de ma servlet

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Requete extends HttpServlet {

private String url = "jdbc:mysql://localhost/stats";
private String password = "";
private String user = "root";
private String DriverClass = "com.mysql.jdbc.Driver";private ResultSet rs null;// null;private ResultSetMetaData rsMeta null;// null;
private Connection con = null;

public void init(ServletConfig conf) throws ServletException {
super.init(conf);
try
{
Class.forName(DriverClass).newInstance();
con =DriverManager.getConnection("jdbc:mysql://localhost/stats'user=root&password=");
}
catch(Exception e)
{
System.out.println(e);
System.out.println("Erreur lors de la connexion à la base de données d'URL : "
+ url + ". Vérifiez les paramètres de connexion. L'application a été arrêtée.");
}
}

/**
* service() method to handle user interaction
*/
public void service (HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {



int c, el;
String cel;


res.setContentType ( "text/html" );
PrintWriter out = res.getWriter ( );

try {


String title = "test";
out.println ( "<html><head><title>" + title
+ "</title></head>" );
out.println ( "" + title + "
" );

String queryString = req.getParameter ("QUERYSTRING");

if ((queryString != "") && (queryString != null))
{

try {
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(queryString);
}
catch (SQLException e) {
System.out.println("Erreur lors de la création de requête");
e.printStackTrace();
}
finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException sqlEx) { }

rs = null;
}
}

System.out.println("test21");
out.println ("You asked:
");
out.println ( "Query: " + queryString + "
" );
out.println("Query Result
");
out.println("\");

// ResultSetMetaData rsMeta = (ResultSetMetaData) rs.getMetaData();

int noCols = rsMeta.getColumnCount();
out.println(\"----
\");

for ( c=1; c<=noCols; c++) {
cel = rsMeta.getColumnLabel(c);
out.println(\" " + cel + " |\");
}
out.println(\"\");
while (rs.next()) {
out.println(\"----
\");
for ( c =1; c<=noCols; c++) {
el = rs.getInt(c);
out.println(\"" + el + ", \");
}
out.println(\"\");
}
out.println("
");
}
} catch (SQLException ex ) {
out.println ( "" );
while (ex != null) {
out.println("Message: " + ex.getMessage ());
out.println("SQLState: " + ex.getSQLState ());
out.println("ErrorCode: " + ex.getErrorCode ());
ex = ex.getNextException();
out.println("");
}
out.println ( "

" );
}

out.println ("<hr>You can now try to retrieve something.");
out.println("<FORM METHOD=POST ACTION='/statalpha/servlet/Requete'>");
out.println("Query: ");
out.println("");
out.println("</FORM>");
out.println("<hr>ex :");
out.println("SELECT * FROM DOCUMENT");

out.println("");


out.println ( "</html>" );
return ;

}

}
0
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
27 juil. 2004 à 16:13
c une erreur de classpath : il faut que tu mettes le driver jdbc de mysql dans $CATALINA_HOME/common/lib
0
tic42 Messages postés 4 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 27 juillet 2004
27 juil. 2004 à 16:39
Merci pour cette solution,
Effectivement maintenant je n'est plus d'erreur dans ma console malheureusement ma page htm à toujours la même erreur(java.lang.NullPointerExeption), mais c'est déja la moité du problème qui est résolu :) :)
0
tic42 Messages postés 4 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 27 juillet 2004
27 juil. 2004 à 16:45
Excuse moi tu a bien résolu mon probleme c'est juste que j 'en ai un autre au niveau du MetaData (mais l'informatique serai trop simple sans probleme)
0
Rejoignez-nous