J'essaie d'ajouter un JSP avec base de données à une application Tomcat 5.5 existante (GeoServer 2.0.0, si cela peut aider).
L'application elle-même communique parfaitement avec Postgres, je sais donc que la base de données est en place, que l'utilisateur peut y accéder, et tout le reste. Ce que j'essaie de faire, c'est une requête de base de données dans un JSP que j'ai ajouté. J'ai utilisé l'exemple de configuration dans la page Exemple de source de données Tomcat pratiquement prêt à l'emploi. Les taglibs nécessaires sont au bon endroit - aucune erreur ne se produit si je n'ai que les refs des taglibs, donc il trouve ces JARs. Le pilote jdbc postgres, postgresql-8.4.701.jdbc3.jar se trouve dans $CATALINA_HOME/common/lib.
Voici le haut de la JSP :
<%@ 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/mmas">
select current_validstart as ValidTime from runoff_forecast_valid_time
</sql:query>
La section correspondante de $CATALINA_HOME/conf/server.xml, à l'intérieur de la section <Host>
qui se trouve à son tour à l'intérieur de <Engine>
:
<Context path="/gs2" allowLinking="true">
<Resource name="jdbc/mmas" type="javax.sql.Datasource"
auth="Container" driverClassName="org.postgresql.Driver"
maxActive="100" maxIdle="30" maxWait="10000"
username="mmas" password="very_secure_yess_precious!"
url="jdbc:postgresql//localhost:5432/mmas" />
</Context>
Ces lignes sont les dernières de la balise dans webapps/gs2/WEB-INF/web.xml :
<resource-ref>
<description>
The database resource for the MMAS PostGIS database
</description>
<res-ref-name>
jdbc/mmas
</res-ref-name>
<res-type>
javax.sql.DataSource
</res-type>
<res-auth>
Container
</res-auth>
</resource-ref>
Enfin, l'exception :
exception
org.apache.jasper.JasperException: Unable to get connection, DataSource invalid: "java.sql.SQLException: No suitable driver"
[...wads of ensuing goo elided]