【问题标题】:java.sql.SQLException: No suitable driver found - Report Serverjava.sql.SQLException:找不到合适的驱动程序 - 报告服务器
【发布时间】:2014-10-24 13:23:28
【问题描述】:

我正在尝试安装报告服务器的开源版本 (http://reportserver.datenwerke.net/en/)

我已经配置了 persistence.xml 文件并更改了以下几行中的详细信息:

<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/reportserver"/>
    <property name="hibernate.connection.username" value="root"/>
    <property name="hibernate.connection.password" value="root"/>

我现在能够成功访问报表服务器并登录等。但是,在为外部数据库添加数据源时,我测试了连接并收到以下错误。

java.sql.SQLException: No suitable driver found

我相信persistence.xml 是正确的,因为我可以更改存储在本地数据库中的reportserver 的用户名和密码。

这是堆栈跟踪的一部分:

net.datenwerke.rs.core.service.reportmanager.exceptions.DatabaseConnectionException: Could not open connection to: example.com with user: root. java.sql.SQLException: No suitable driver<br>   at 
net.datenwerke.rs.base.service.datasources.table.transformers.DatabaseDatasourceTableTransformer.transform(DatabaseDatasourceTableTransformer.java:62)<br>  at 
net.datenwerke.rs.base.service.datasources.table.transformers.DatabaseDatasourceTableTransformer.transform(DatabaseDatasourceTableTransformer.java:1)<br>   at 
net.datenwerke.rs.core.service.datasourcemanager.datasourcetransformers.DatasourceDefinitionTransformerManager.transform(DatasourceDefinitionTransformerManager.java:49)<br>    at 
net.datenwerke.rs.base.service.reportengines.table.SimpleDataSupplier.getData(SimpleDataSupplier.java:118)<br>  at 
net.datenwerke.rs.base.service.reportengines.table.SimpleDataSupplier.getData(SimpleDataSupplier.java:113)<br>  at 

我已按要求为项目安装了 JDK 和 tomcat,并下载了 Mysql 连接器 JDBC 驱动程序 (mysql-connector-java-5.0.8-bin.jar)。我已将其放入 /usr/share/apache-tomcat-7.0.56/webapps/reportserver/WEB-INF/lib 作为说明状态,需要安装但未指定位置(http://blog.datenwerke.net/2013/05/installation-and-basic-configuration.html)。我把它放在这里是正确的还是应该放在 Tomcat lib 文件夹中。名字也需要改吗?

我几乎没有使用 Java 的经验,我已经搜索了又搜索,但我需要一些帮助才能继续前进。谁能建议我如何解决这个问题。

供您参考:

外部数据库是一个Mysql数据库,我可以从navicat和php脚本等访问它。

我使用的服务器是 Centos 6.5 64bit。

非常感谢。

更新 这是完整的块

<!-- Connection properties -->
<property name="hibernate.dialect" value="net.datenwerke.rs.utils.hibernate.MySQL5Dialect"/>
        <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
        <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/reportserver"/>
        <property name="hibernate.connection.username" value="root"/>
        <property name="hibernate.connection.password" value="root"/>

【问题讨论】:

    标签: java mysql tomcat jdbc


    【解决方案1】:

    您缺少以下内容:

      <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    

    【讨论】:

    • 请查看我的问题中的更新,似乎这是存在的,但我没有包含在第一篇文章中。
    • 你电脑上的 mysql 是否在 3306 端口上运行?
    • 本地数据库在 3306 上运行,我相信这可以正常连接,因为当我从 gui 更改密码时数据库中的密码会发生变化。我还在 gui 中添加了另一个数据源,以便我可以从该数据库中报告。连接失败的正是这个外部数据库。该数据库也在 3306 上,可以从其他任何地方访问。
    【解决方案2】:

    这个问题的答案很简单,但也很具有欺骗性。添加外部数据源时,系统会要求您输入数据库类型,即 Mysql、用户名、密码,重要的是这里的 URL。 像添加其他任何内容(即 example.com)一样添加 url 似乎是合乎逻辑的。 然而,URL 的正确格式应如 persistence.xml 文件中所示:

    jdbc:mysql://example.com:3306/databasename

    一旦你像上面那样格式化了url,你会发现连接会成功建立。

    这对我来说有点缺乏经验,但希望这会帮助其他使用报告服务器的人。

    【讨论】:

      猜你喜欢
      • 2013-07-04
      • 2016-11-28
      • 2011-08-02
      • 2012-08-28
      • 2015-07-05
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多