臭名昭著的java.sql.sqlexception:找不到合适的驱动程序

zf9nrax1  于 2021-06-30  发布在  Java
关注(0)|答案(16)|浏览(508)

我正在尝试向现有的tomcat5.5应用程序(geoserver2.0.0,如果有帮助的话)添加一个支持数据库的jsp。
应用程序本身和postgres的对话很好,所以我知道数据库已经启动,用户可以访问它,所有这些好东西。我要做的是在jsp中添加一个数据库查询。我在tomcat数据源示例中使用了配置示例。必要的taglib放在正确的位置——只要有taglib ref,就不会出错,所以它正在查找那些jar。postgresjdbc驱动程序postgresql-8.4.701.jdbc3.jar位于$catalina\u 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\u 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]
frebpwbc

frebpwbc16#

可能导致的一个非常愚蠢的错误是在JDBCURL连接的开始处添加空间。
我的意思是:-
假设您错误地给出了如下jdbc url

String jdbcUrl=" jdbc:mysql://localhost:3306/web_customer_tracker?useSSL=false&serverTimeZone=UTC";

(请注意,url开头有一个空格,这将导致错误)
正确的方法应该是:

String jdbcUrl="jdbc:mysql://localhost:3306/web_customer_tracker?useSSL=false&serverTimeZone=UTC";

(注意在开始处没有空格,你可以在url的末尾留空格,但不留空格是安全的)

相关问题