Я пытаюсь добавить JSP с поддержкой базы данных к существующему приложению Tomcat 5.5 (GeoServer 2.0.0, если это помогает).
Приложение само по себе говорит с Postgres как раз прекрасно, поэтому я знаю, что база данных готова, пользователь может получить к ней доступ, все это хорошее. То, что я пытаюсь сделать, - это запрос базы данных в JSP, который я добавил. Я использовал пример конфигурации в примере источника данных Tomcat в значительной степени из коробки. Необходимые taglib находятся в нужном месте - никаких ошибок не возникает, если у меня есть только теги taglib, поэтому они находят эти JAR. Драйвер postgres jdbc, postgresql-8.4.701.jdbc3.jar находится в $CATALINA_HOME/common/lib.
Здесь верхняя часть 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>
Соответствующий раздел из $CATALINA_HOME/conf/server.xml внутри <Host>
, который в свою очередь находится внутри <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>
Эти строки являются последними в теге в 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>
Наконец, исключение:
exception
org.apache.jasper.JasperException: Unable to get connection, DataSource invalid: "java.sql.SQLException: No suitable driver"
[...wads of ensuing goo elided]