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