Bonjour,

Je voulais tester SpagoBI sur mon poste, mais je rencontre des soucis de connexion à MySQL. J'ai donc tenté de reproduire l'exemple fourni dans les docs de Tomcat, mais malheureusement cela ne fonctionne pas mieux.

Le problème vient donc de ma configuration de Tomcat
yum install tomcat6*
Le fichier /etc/tomcat6/tomcat-users.xml :
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <role rolename="manager"/>
  <role rolename="admin"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
  <user username="TomcatAdmin" password="tomcat" roles="admin,manager"/>
</tomcat-users>
J'ai défini la connexion dans le fichier /etc/tomcat6/context.xml :
<Context>

    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->

    <!-- Uncomment this to enable Comet connection tacking (provides events
         on session expiration as well as webapp lifecycle) -->
    <!--
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    -->
<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="javauser" password="javadude" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"/>
</Context>
/usr/share/tomcat6/webapps/DBTest/WEB-INF j'ai créé le fichier web.xml suivant :
<web-app 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"
    version="2.4">
   <description>MySQL Test App</description>
     <resource-ref>
       <description>DB Connection</description>
       <res-ref-name>jdbc/TestDB</res-ref-name>
       <res-type>javax.sql.DataSource</res-type>
       <res-auth>Container</res-auth>
     </resource-ref>
</web-app>
dans /usr/share/tomcat6/webapps/DBTest/WEB-INF/lib les jar suivants ont été ajoutés :
jstl.jar
mysql-connector-java.jar
standard.jar

et mon fichier Test.jsp déposé dans DBTest :
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<sql:query var="rs" dataSource="jdbc/TestDB">
select id, foo, bar from testdata
</sql:query>

<html>
  <head>
    <title>DB Test</title>
  </head>
  <body>

  <h2>Results</h2>
  
<c:forEach var="row" items="${rs.rows}">
    Foo ${row.foo}<br/>
    Bar ${row.bar}<br/>
</c:forEach>

  </body>
</html>
J'obtiens l'erreur suivante :
javax.servlet.ServletException: javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "java.sql.SQLException: No suitable driver found for jdbc/TestDB"
Je vous remercie d'avance de toute aide.
Il s'avère que le souci vient de la librairie tomcat-dbcp.

J'avais l'erreur suivante dans catalina.log :
ATTENTION: Failed to register in JMX: javax.naming.NamingException: Could not create resource factory instance [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory]
Pour résoudre le problème, j'ai été chercher dans le jar 'tomcat-dbcp.jar' directement dans les binaires fourni ici : http://apache.cict.fr/tomcat/tomcat-6/v6.0.32/bin/ et je l'ai placé dans /usr/share/tomcat6/lib.

J'hésite à passer mon topic à Résolu, parce que pour moi ce n'est pas normal que je suis obligé de faire cela.

Quel est votre avis ?