如何解决带有 JNDI 数据源的 BIRT 报告返回 null
BIRT 报告可以使用硬编码的 Jdbc 连接生成。但我必须生成 20 多个报告。但是 jdbc url 和凭据在移动到生产服务器时必须在所有报告中更改,这有点麻烦。
因此我想使用 JNDI 数据源选项将所有内容保存在一个地方。如果创建了 JNDI 数据源,那么 Tomcat 等容器可以管理连接池等。为此我做了以下步骤,但它总是返回错误“jdbc url is null”。
- 在 bonita.xml 中创建 JNDI 数据源
<Resource name="ds/businessdb" auth="Container" type="javax.sql.DataSource" maxActive="5" maxIdle="-1" maxWait="10000" username="root" password="password" driverClassName="com.mysql.cj.jdbc.Driver" url="jdbc:mysql://<ip>:3306/db"/>
-
在 birt web 应用程序的 web.xml 中添加了条目
<resource-ref> <description>Resource reference to a factory forjava.sql.Connection</description> <res-ref-name>ds/businessdb</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>
-
然后在 BIRT 报告设计中我使用 JNDI url 作为
java:comp/env/ds/businessdb
返回 jdbc url 为空。
解决方法
Afaik,对于 Tomcat 数据源,您需要
-
进入tomcat/server.xml
<Resource auth="Container" driverClassName="com.mysql.cj.jdbc.Driver" ...
-
进入tomcat/context.xml
<ResourceLink type="javax.sql.DataSource" name=...
-
确保您的数据库驱动程序 JAR 在运行时可用于服务器。
(不知道bonita.xml是什么)
您还可以通过编写一个向数据库发出一些请求并在您的服务器上运行它的迷你应用程序来检查您的 Tomcat 数据源是否配置正确。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。