J'essaye de declarer ma source données

-J 'utilise tomcat 5 sous windows
- d'aprés ce que j'ai lu dans les tutoriel c'est que je dois mettre les declaration dans ( web.xml et META-INF/context.xml)

- dans le répertoire de l'application "dal2" j'ai créé le dossier META-INF puis le fichier context.xml dans le dossier META-INF ( je ne sais pas si c ça ce que je dois faire) parcque ma declaration de ma datasource ne doit pas se faire dans le fichier server.xml avec tomcat5.

-dans le fichier context.xml j'ai mis :
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 path="/dal2" 
	reloadable="true" 
	docBase="D:\dal2" >
	<Resource
		name="jdbc/DbAccess"
		auth="Container"
		type="javax.sql.DataSource"/>
	<ResourceParams name="jdbc/DbAccess">
		<parameter>
			<name>username</name>
			<value>root</value>
	 	</parameter>
		<parameter>
			<name>password</name>
			<value>pass83</value>
		</parameter>
	 	<parameter>
			<name>driverClassName</name>
			<value>com.mysql.jdbc.Driver</value>
	 	</parameter>
		<parameter>
			<name>url</name>
			<value>jdbc:mysql://localhost:3306/dal</value>
		</parameter>
	</ResourceParams>		 
</Context>
Puis dans le fichier web.xml j'ai :
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
 
<web-app>
  <display-name>Struts Blank Application</display-name>
 
  <!-- Standard Action Servlet Configuration -->
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
 </servlet>
 
 
  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
 
   <!-- Standard datasources -->
 
	<servlet>
		<servlet-name>DbAccess</servlet-name>
		<servlet-class>ma.ac.dal.bd.DbAccess</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>DbAccess</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>
	<resource-ref>
		<description>
			reference a la ressource BDD pour le pool
		</description>
		<res-ref-name>jdbc/DbAccess</res-ref-name>
		<res-type>javax.sql.DataSource</res-type>
		<res-auth>Container</res-auth>
	</resource-ref> 
 
 
 
 
  <!-- The Usual Welcome File List -->
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
 
</web-app>
et dans l'application j'ai créé une classe DbAccess contenant :

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
 
 
package ma.ac.dal.bd;
 
import java.sql.Connection;
import java.sql.SQLException;
 
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
 
public class DbAccess {
	public DataSource ds;
	Connection con=null;
 
  private static 	DbAccess		instance	= new DbAccess();
 
 
	public DbAccess() {
		try {
			//récupération de la source de donnée
			Context initCtx = new InitialContext();
			ds = (DataSource) initCtx.lookup("java:comp/env/jdbc/DbAccess");
		} catch (Exception e) {
			e.printStackTrace();
		}
 
	}
	public  Connection getConnection() {
		try {
			this.con=ds.getConnection();
			System.out.println("on ouvre la connection");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return con;
	}
 
	public static DbAccess getInstance() {
		return instance;
	}
 
}
et dans mon action J'ai fait un test :

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
 
 
package ma.ac.dal.actions;
 
import java.io.IOException;
import java.sql.Connection;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import ma.ac.dal.bd.DbAccess;
import ma.ac.dal.beans.LoginForm;
 
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.config.FormBeanConfig;
 
public class LoginAction  extends Action {
	private 		Connection		connection	= null;
 
 
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws IOException,ServletException {
//			 on a un formulaire valide, sinon on ne serait pas arrivé là
 
 
 
			LoginForm formulaire=(LoginForm)form;
 
		connection=DbAccess.getInstance().getConnection();
 
 
			return mapping.findForward("success");
 
			}
	}
Enfin j'obtien cettre erreur :
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
 
24 sept. 2007 01:44:09 org.apache.struts.chain.ComposableRequestProcessor init
INFO: Initializing composable request processor for module prefix ''
24 sept. 2007 01:44:09 org.apache.struts.chain.commands.servlet.CreateAction createAction
INFO: Initialize action of type: ma.ac.dal.actions.LoginAction
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780)
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
	at ma.ac.dal.bd.DbAccess.getConnection(DbAccess.java:29)
	at ma.ac.dal.actions.LoginAction.execute(LoginAction.java:32)
	at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
	at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
	at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
	at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
	at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
	at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
	at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	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(Unknown Source)
Caused by: java.sql.SQLException: No suitable driver
	at java.sql.DriverManager.getDriver(Unknown Source)
	at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:773)
	... 28 more
S'il vous plait,comment puis je résoudre ce problème ?

Je ne sais pas si ça vient du dossier META-INF que j'ai créé dans le dossier de l'application "D/:dal2". Je ne sais pas si comme ça que e devais procéder.

Je vous ai expliqué tt ce que j'ai fait .

Merci de m'aider.