Bonjour,
Je suis le tutoriel pour créer un pool de connexion.
Quand je lance la servlet qui utilise la datasource, j'ai le message suivant :
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
Pour indo, voici mon web.xml :
Mon server.xml :
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 <?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> bnpweb</display-name> <servlet> <servlet-name>ServletInit</servlet-name> <servlet-class>com.bnp.projet.web.ServletInit</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletInit</servlet-name> <url-pattern>/ServletInit</url-pattern> </servlet-mapping> <servlet> <servlet-name>TutoPool</servlet-name> <servlet-class>com.bnp.projet.web.connexion.TutoPool</servlet-class> </servlet> <servlet-mapping> <servlet-name>TutoPool</servlet-name> <url-pattern>/pool</url-pattern> </servlet-mapping> <resource-ref> <description></description> <res-ref-name>jdbc/TutoPool</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> <welcome-file-list> <welcome-file>ServletInit</welcome-file> <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> </web-app>
et ma servlet :
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 <Context docBase="bnpweb" path="/bnpweb" reloadable="true" source="org.eclipse.jst.j2ee.server:bnpweb"> <Resource name="jdbc/TutoPool" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/TutoPool"> <parameter> <name>username</name> <value>auguste</value> </parameter> <parameter> <name>password</name> <value>magicadm</value> </parameter> <parameter> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <parameter> <name>url</name> <value>jdbc:microsoft:sqlserver://PARS001i0015:1433</value> </parameter> </ResourceParams> </Context> </Host> </Engine> </Service> </Server>
Quelqu'un a t-il une idée ?
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 package com.bnp.projet.web.connexion; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.naming.Context; import javax.naming.InitialContext; import javax.servlet.ServletException; import javax.servlet.UnavailableException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource; public class TutoPool extends HttpServlet { private DataSource ds; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); Connection con = null; Statement s = null; ResultSet rs = null; try{ con = ds.getConnection(); s = con.createStatement(); rs = s.executeQuery("SELECT * FROM COLLABORATEURS_TR"); while(rs.next()){ out.println(rs.getString(1)); } }catch(SQLException e){ response.sendError(500,"Exception sur accès à la BDD " + e); System.out.println(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; } } } public void init() throws ServletException { try{ Context iniCtx = new InitialContext(); ds = (DataSource)iniCtx.lookup("java:comp/env/jdbc/TutoPool"); }catch(Exception e){ throw new UnavailableException(e.getMessage()); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } }
Merci
[Edité par zekey: pensez au balises code svp]
Partager