birt报表运行错误,有谁知道是什么问题吗?
2018-08-21 · 专注于财税服务20年!
使用birt开发出来几个报表,在给用户部署时,有一个报表老是出现用户名口令错误,从而造成oracle用户被锁。
在现场直接使用birt设计器,没有问题,而一部署到运行环境就不行。
首先排除问题:
1、配置的用户名口令正确,报表设计时连接的用户名口令也正确。
证明:设计时预览数据正常,配置的其他报表显示正常。
2、报表本身没有问题:
证明:把报表放到公司搭建的运行环境中,一切正常。
重新创建一个报表,还出现用户名口令错误、oracle用户被锁情况。
在公司大牛的提示下,拿出一个能正常运行和该报表进行文本对比,并一点点的调整,测试。
最后,发现原因是数据源的口令加密方式,和正常运行的报表不一样,如下:
<data-sources> <oda-data-sourceextensionID="org.eclipse.birt.report.data.oda.jdbc"name="DFDataSource" id="7" extends="dfsoft_report_library.DFDataSource"> <propertyname="odaDriverClass">oracle.jdbc.driver.OracleDriver</property> <propertyname="odaURL">jdbc:oracle:thin:@192.168.0.155:1521:orcl</property> <property name="odaUser">tjxs_eagle</property> <encrypted-property name="odaPassword" encryptionID="jce">816d12df64672298</encrypted-property> <propertyname="odaJndiName">java:comp/env/dfsoft/report</property> </oda-data-source> </data-sources>
正常运行报表的口令加密是:
[html] view plain copy
<code class="language-html"><encrypted-property name="odaPassword" encryptionID="base64">dGp4c19lYWdsZQ==</encrypted-property></code>
把口令加密方式和口令修改为和正常运行的报表口令一样,再次运行,一切正常。
分析:
公司在birt上进行了二次开发,可能造成运行时环境只能识别对口令的“base64”加密方式。
而口令加密在birt设计器中是看不到了,造成了该问题的隐蔽,不易发现。
2024-11-11 广告