查看BIRT报告时拒绝用户访问

时间:2014-05-16 18:38:04

标签: mysql tomcat jdbc birt

我使用Tomcat 8.0.5在Microsoft Server 2012上设置了BIRT 4.3.2 Web Viewer。当尝试通过BIRT Viewer连接到数据库时,我收到以下错误。

org.eclipse.birt.report.engine.api.EngineException: An exception occurred during processing.
Please see the following message for details:
Cannot open the connection for the driver: org.eclipse.birt.report.data.oda.jdbc.
org.eclipse.birt.report.data.oda.jdbc.JDBCException: Failed to get connection.
SQL error #1:Access denied for user 'webuser'@'10.3.2.50' (using password: YES)

我可以确认我可以在同一台机器上使用Eclipse Designer连接到数据库...我还在Tomcat服务器上设置了一个测试应用程序,它连接并检索来自同一数据库的数据,两者都使用相同的凭据。我的驱动程序放在root \ webapps \ Birt \ WEB-INF \ lib文件夹中。

2 个答案:

答案 0 :(得分:1)

您的webuser似乎无法在10.3.2.50上连接到数据库。请将您的凭据更改为有效凭证。

您可以使用mysql验证哪些凭据正确:mysql -u webuser 10.3.2.50

答案 1 :(得分:0)

我为Tomcat 6.0.39配置了JNDI连接,并且我能够连接到数据源。以下是我采取的步骤:

安装Tomcat [6.0.39 [(http://tomcat.apache.org/download-60.cgi)。

安装Birt 4.2.3 Viewer

将WebViewerExample放在$ TOMCAT_INSTALL / webapps /文件夹中,并将该文件夹重命名为Birt。 将JDBC mysql jar放在$ TOMCAT_INSTALL / lib /文件夹中。 将以下xml添加到Birt / WEB-INF / web.xml文件中:

<resource-ref>
  <description>[description]</description>
  <res-ref-name>jdbc/MySqlDB</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
</resource-ref>

将一个context.xml文件添加到BIRT / META-INF /,我必须在Birt项目中创建META-INF文件夹。

<Context>
  <Resource name="jdbc/MySqlDB" auth="Container" type="javax.sql.DataSource" 
    maxActive="5" maxIdle="=1" maxWait="10000" username="[username]" 
    password="[password]" driverClassName="com.mysql.jdbc.Driver" 
    url="jdbc:mysql://[host]:[port]/[dbname]
  </Resource>
</Context>

在RPTDesign内部编辑数据源并包含以下JNDI URL:

java:comp/env/jdbc/MySqlDB

重新启动Tomcat服务并指向RPTDesign的相应URL。