[EMAIL PROTECTED] a écrit :

Bonjour à tous,

J'ai développé un portlet qui fait une connexion à une base de données et exécute un "SELECT ..." puis affiche les résultats.

Afin d'optimiser les connexions à la base de données, je souhaite mettre en place un pool de connexion sous tomcat.

L'un d'entre vous a t-il déjà mis en place un pool de connexion pour un portlet sous jahia ?
J'ai redémarré jahia après chaque modif au niveau du sever.xml.

Le portlet affiche l'exception SQLException suivante :
Exception sur l'accès à la BDD : org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'


Config applicative :        
        TOMCAT 5.5
        JAHIA 5.0.2
        MYSQL 4.1

Les étapes menées :

1. Disponibilité du connecteur mysql
        $TOMCAT_HOME/tserver/lib/mysql-connector-java-3.1.12-bin.jar
        $TOMCAT_HOME/common/lib/mysql-connector-java-3.1.12-bin.jar


2. Configuration du web.xml .... celui de jahia ou celui de ma webapp ??? j'ai ajouté ces lignes dans les 2 afin d'être sûre !
        <resource-ref>
                        <description>Test du pool de connexion a Mysql</description>
                <res-ref-name>jdbc/jahia502</res-ref-name>
                        <res-type>javax.sql.DataSource</res-type>
                        <res-auth>Container</res-auth>
        </resource-ref>

3. Configuration du server.xml de jahia ($TOMCAT_HOME/conf/server.xml)
        <Resource          
                name="jdbc/jahia502"        
                auth="Container"
                type="javax.sql.DataSource"
                maxActive="100"
                maxIdle="30"
                maxWait="10000"
                driverClassName="com.mysql.jdbc.Driver"
                url=""                
                username="jahia"
                password="jahia"
        />

4. Classe Java qui se connecte à la bdd
        import java.io.IOException;
        import java.io.PrintWriter;
        import java.io.*;
        import java.net.*;
        import java.util.*;
        import java.sql.*;

        import javax.naming.*;
        import javax.sql.*;

        import javax.servlet.*;
        import javax.servlet.RequestDispatcher;
        import javax.servlet.ServletConfig;
        import javax.servlet.http.HttpServlet;
        import javax.servlet.http.HttpServletRequest;
        import javax.servlet.http.HttpServletResponse;


        public class TestPool extends HttpServlet {
         
                  private DataSource ds;
                 
                  public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException,  IOException {
                   
                            PrintWriter out = response.getWriter();
                            Connection connexion = null;
                            Statement instruction=null;
                        ResultSet resultat=null;
                        String html = "";
                           
                            try {                                          
       
                                // Définition du flux de sortie                            
                                    response.setContentType("text/html");                                                                                                                    
                                   
                                   //récupération de la Connection depuis le DataSource
                                   connexion = ds.getConnection();                          
                                   instruction = connexion.createStatement();
                                   resultat  = instruction.executeQuery("SELECT * FROM jahia_sites");
       
                                   while(resultat.next()){                                    
                                            html = html + "Nom du site: "+resultat.getString("title_jahia_sites")+"<br>";
                                   }
                                                                                     
                        }catch (SQLException e) {
                                response.sendError(500, "Exception sur l'accès à la BDD " + e);
                                out.println("Exception sur l'accès à la BDD : " + e);
                        }finally {
                                if (resultat != null){
                                        try {
                                                resultat.close();
                                        } catch (SQLException e) {out.println("Erreur lors de la fermeture du resultset");}
                                        resultat = null;
                                }
                                if (instruction != null) {
                                        try {
                                                instruction.close();
                                        } catch (SQLException e) {out.println("Erreur lors de la fermeture du statement");}
                                        instruction = null;
                                }
                                if (connexion != null) {
                                        try {
                                                connexion.close();
                                        } catch (SQLException e) {out.println("Erreur lors de la fermeture de la connexion");}
                                        connexion = null;
                                }
                        }        
                        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/jahia502");                          
                          }catch(Exception e){
                                  throw new UnavailableException(e.getMessage());
                          }
                  }        

 }
Merci d'avance pour les éventuelles pistes qui me permettront de résoudre mon problème !
Bonne journée !
Marie

--------------------------------------------
This message and any attachments (the "message") are confidential and intended solely for the addresses. Any unauthorised use or dissemination is prohibited. If you are not receiver of this message, please cancel it immediately and inform the sender. This note ensures that our antivirus checked that this message did not include any virus know to date, nevertheless any e-mail is suitable for deterioration. We shall not be liable for the message if altered, changed or falsified.
--------------------------------------------

_______________________________________________ french_list mailing list [email protected] http://lists.jahia.org/cgi-bin/mailman/listinfo/french_list


_______________________________________________
french_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/french_list

Répondre à