bonsoir à tous ...

Voici un probléme que j'essaie de resoudre depuis quequesssss jours :
Me connecter à une base de données Mysql Avec une servlet.

En fait il (me) semble que la connection est refusée ( je suis débutant ) .
Voici le message d'erreur retourné :
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
 
Communications link failure due to underlying exception: ** BEGIN NESTED 
EXCEPTION ** java.net.SocketException MESSAGE: java.net.ConnectException: 
Connection refused STACKTRACE: java.net.SocketException: 
java.net.ConnectException: Connection refused at 
com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156) at 
com.mysql.jdbc.MysqlIO.(MysqlIO.java:276) at 
com.mysql.jdbc.Connection.createNewIO(Connection.java:2666) at 
com.mysql.jdbc.Connection.(Connection.java:1531) at 
com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266) at
 java.sql.DriverManager.getConnection(DriverManager.java:525) at 
java.sql.DriverManager.getConnection(DriverManager.java:171) at org.kzone.ServletJdbc.doGet(ServletJdbc.java:34) at 
javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at 
javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
 at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
 at java.lang.Thread.run(Thread.java:595) ** END NESTED EXCEPTION ** Last packet 
sent to the server was 61 ms ago.
avec un Connection refused STACKTRACE on ne peut plus explicite !

Voici le code de l'exemple :
Class ServletJdbc :
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
 
package org.kzone;
 
import java.io.*;
 
import javax.servlet.*;
import javax.servlet.http.*;
 
import java.sql.*;
 
public class ServletJdbc extends HttpServlet {
	protected void doGet (HttpServletRequest request, HttpServletResponse response)
	throws IOException, ServletException {
		// 'ouverture ' de l'écrivain 
		PrintWriter out = response.getWriter();
		// précision du format de sortie
		response.setContentType("text/html");
 
		// récupération des paramètre du formulaire 
		final String nom = request.getParameter("nom");
		final String prenom = request.getParameter("prenom");
		final String telephone = request.getParameter("telephone");
 
		// instances de connection 
		Connection connection = null;
		ResultSet result = null;
		Statement statement = null;
 
		// partie connection a la base
		try {
			// connection à la base
			Class.forName("com.mysql.jdbc.Driver");
			// obtention d'un connection
			String url = "jdbc:mysql://localhost/bdtest";
			connection = DriverManager.getConnection(url, "kzone", "drikilzon");
 
			statement = connection.createStatement();
 
			// insertion de valeur à la base
			String requete = "INSERT INTO personne" +
					"(nom,prenom,telephone)" +
					"VALUES ('"+ nom + "','" + prenom + "'," + "'" + telephone +"')";
			statement.executeUpdate(requete);
 
			// afficher le contenu de la base de données
			result = statement.executeQuery("select * from personne");
			// reécuperation dans un tableau
			while(result.next()); {
				int idPersonneBd = result.getInt("idPersonne");
				String nomBd = result.getString("nom");
				String prenomBd = result.getString("prenom");
				String telephoneBd = result.getString("telephone");
 
				// affichage des resultats 
				out.println(prenomBd + " " + nomBd + " " + telephoneBd);
			}
		}
		catch (ClassNotFoundException e) {
			out.println(e.getMessage());
		}
		catch (SQLException e) {
			// TODO Auto-generated catch block
			out.println(e.getMessage());
	}
		//instruction exécutée dans tous les cas
		finally {
			// fermeture statement
			// si ouvert .. on ferme
			if (statement != null) 
            // peut provoquer une exception
			{
				try {
					statement.close();
				}
				catch (SQLException e1) {
					e1.printStackTrace();
				}
			}
			// fermeture result
			if (result != null) {
				try {
					result.close();
				}
				catch (SQLException e1) {
					e1.printStackTrace();
				}
			}
			// fermeture connection
			if (connection != null) {
				try {
					connection.close();
				}
				catch (SQLException e1) {
					e1.printStackTrace();
				}
			}
		}
	}
}
J'ai mis le descripteur web.xml au niveau de l'application
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
....
 <!-- description application servletJdbc -->
  <servlet>
    <servlet-name>ServletJdbc</servlet-name>
    <servlet-class>org.kzone.ServletJdbc</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>ServletJdbc</servlet-name>
    <url-pattern>/formulaire1</url-pattern>
  </servlet-mapping>
...
et j'ai testé cette application en mettant le fichier jar mysql-connector-java-5.0.4-bin aussi bien dans le répertoire commun ( common/lib) que celui de mon application (WEB-INF/lib) ..

J'ai également ajouté ce fichier dans le javaBuildPath emon projet (sous Eclipse) , mais c'est une approche empirique qui ne me satisfait pas beaucoup .. surtout lorsque cela ne marche pas ...

Merci de votre aide
++