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="jdbc:mysql://localhost:3306/jahia502" 
                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

Répondre à