IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Pool de connexion - Tomcat


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut Pool de connexion - Tomcat
    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 :
    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>
    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
     
          <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>
    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
    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);
    	}
    }
    Quelqu'un a t-il une idée ?

    Merci

    [Edité par zekey: pensez au balises code svp]

  2. #2
    Membre actif Avatar de MicroPuce
    Inscrit en
    Mai 2004
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 262
    Points : 212
    Points
    212
    Par défaut
    Salut,
    je suis sur d'avoir déjà eu ce genre d'erreur mais je suis moins sur de me rappeler la solution
    Il me semble que mon .jar n'était pas de le classpath du serveur, tu peux donc déjà verifier
    J'espere que c'est ça

  3. #3
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut
    Bonjour,

    En fait il y avait plusieurs pb : mon jar n'était pas dans le classpath et j'ai aussi modifié le fichier server.xml.

    maintenant, le message d'erreur est : Cannot load JDBC driver class 'com.microsoft.jdbc.sqlserver.SQLServer'.

    J'ai donc crée une classe avec une méthode main pour tester et là il trouve bien le driver. quand je passe par ma servlet qui utilise le pool de connexion de tomcat, il me met le message d'erreur.....

    incompréhensible....

  4. #4
    Membre actif Avatar de MicroPuce
    Inscrit en
    Mai 2004
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 262
    Points : 212
    Points
    212
    Par défaut
    Tu es sur de l'avoir mis au bon endroit ton jar?
    C'est tomcat qui gere le pool donc c'est lui qui doit acceder à ton jar, donc il doit se trouver dans shared je crois, pas dans le lib de ton appli...
    C'est peut-être ça l'souci?

  5. #5
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Points : 181
    Points
    181
    Par défaut
    merciiiiiiiiiiiii !!!!!

    oui c'était bien ça. il faut que le .jar soit (non pas dans le répertoire shared/lib) mais dans le répertoire common/lib de tomcat et ça fonctionne.


    merci encore

  6. #6
    Membre actif Avatar de MicroPuce
    Inscrit en
    Mai 2004
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 262
    Points : 212
    Points
    212
    Par défaut
    Je sais jamais entre shared et lib, je crois que y en a un des deux qui n'est pas accessible par tomcat...
    A pluche...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de pool de connexion Tomcat
    Par xfacq dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 04/03/2007, 17h11
  2. Hibernate et pool de connexion Tomcat
    Par K-Kaï dans le forum Hibernate
    Réponses: 8
    Dernier message: 09/08/2006, 17h21
  3. [TOMCAT] Ressource globale pool de connexion partagée
    Par ren0 dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 15/03/2005, 14h05
  4. [TOMCAT] pool de connexion postgres
    Par kitov dans le forum Tomcat et TomEE
    Réponses: 4
    Dernier message: 04/06/2004, 16h13
  5. [tomcat 4.1] [oracle] Pool de connexion
    Par Franco dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 23/09/2003, 00h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo