Problème de pool de connexion MySQL
Bonjour,
Je suis en train de réaliser un projet J2EE sous Eclipse 3.3 avec WTP. J'ai utilisé le tuto sur le site mais j'ai l'exception suivante:
Citation:
Etat HTTP 500 - Exception sur l'accès à la BDD org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
type Rapport d'état
message Exception sur l'accès à la BDD org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
description Le serveur a rencontré une erreur interne (Exception sur l'accès à la BDD org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null') qui l'a empêché de satisfaire la requête.
Voici mon fichier Web.xml :
Code:
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
| <?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>
GestionProspect</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description>
</description>
<display-name>
servletAuthentification</display-name>
<servlet-name>servletAuthentification</servlet-name>
<servlet-class>
servletAuthentification</servlet-class>
</servlet>
<servlet>
<description>
</description>
<display-name>
ProspectPool</display-name>
<servlet-name>ProspectPool</servlet-name>
<servlet-class>
ProspectPool</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servletAuthentification</servlet-name>
<url-pattern>/servletAuthentification</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ProspectPool</servlet-name>
<url-pattern>/ProspectPool</url-pattern>
</servlet-mapping>
<resource-ref>
<description>
reference a la ressource BDD pour le pool
</description>
<res-ref-name>jdbc/ProspectPool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app> |
fichier server.xml
Code:
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
| <?xml version="1.0" encoding="UTF-8"?>
<Host>
<Context path="/ProspectPool"
reloadable="true"
docBase="\ProspectPool" >
<Resource
name="jdbc/ProspectPool"
auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/ProspectPool">
<parameter>
<name>username</name>
<value>titeuf</value>
</parameter>
<parameter>
<name>password</name>
<value>mdp</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost/projet</value>
</parameter>
</ResourceParams>
</Context>
</Host> |
fichier .java
Code:
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
| import java.io.*;
import java.sql.*;
import javax.naming.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.sql.*;
public class ProspectPool extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
private DataSource ds; //la source de données
protected void doGet(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><head></head>");
out.println("<body>");
Connection con=null;
Statement s=null;
ResultSet rs=null;
try {
//récupération de la Connection depuis le DataSource
con = ds.getConnection();
s = con.createStatement();
rs = s.executeQuery("SELECT * FROM t_utilisateur");
while (rs.next()) {
out.println(rs.getString(1) + " ");
out.println(rs.getString(2) + "<br/>");
}
} catch (SQLException e) {
response.sendError(500, "Exception sur l'accès à la BDD " + e);
}finally {
if (rs != null)
{
try {
rs.close();
} catch (SQLException e) {}
rs = null;
}
if (s != null) {
try {
s.close();
} catch (SQLException e) {}
s = null;
}
if (con != null) {
try {
con.close();
} catch (SQLException e) {}
con = null;
}
}
out.println("</body>");
out.println("</html>");
out.close();
}
public void init() throws ServletException {
try {
//récupération de la source de donnée
Context initCtx = new InitialContext();
ds = (DataSource) initCtx.lookup("java:comp/env/jdbc/ProspectPool");
} catch (Exception e) {
throw new UnavailableException(e.getMessage());
}
}
} |
Sachant que depuis une classe java indépendante du pool de connexion j'arrive à me connecter à la base.
Voici les éléments: driver...:
Ceci étant dans la classe qui marche:
Citation:
//Le driver pour la connexion à la BD MySQL
public static final String DRIVER_MYSQL = "com.mysql.jdbc.Driver";
//Le url de la base du prijet ESIAG
public static final String URL_PROJET = "jdbc:mysql://localhost/projet";
//Le usare name pour se connecter à la base de bonnées
public static final String USER_NAME = "titeuf";
//Le mot de passe nécessaire pour se connecter
public static final String MOT_DE_PASSE = "mdp";
Merci pour votre aide