`
sbfivwsll
  • 浏览: 63433 次
  • 性别: Icon_minigender_1
  • 来自: 四川
社区版块
存档分类
最新评论

birt 配置动态数据源

 
阅读更多

项目中使用3.7.1的birt。

因为项目需要在birt中配置动态数据源,因此在网上搜索了一下动态数据源的配置方法,按网上的说明,在数据源的beforeopen事件中添加类似如下代码:

importPackage( Packages.java.io );
importPackage( Packages.java.util );
fin = new java.io.FileInputStream(new String("d:/config.txt"));
props = new java.util.Properties( );

props.load(fin);
extensionProperties.odaDriverClass = new String(props.getProperty("driver"));
extensionProperties.odaURL = new String(props.getProperty("url"));
extensionProperties.odaUser = new String(props.getProperty("username"));
extensionProperties.odaPassword = new String(props.getProperty("password"));
fin.close();

结果一跑,出错:

严重: Unable to open connection.
org.eclipse.birt.report.data.oda.jdbc.JDBCException: Cannot load JDBC Driver class: org.mozilla.javascript.NativeJavaObject@1430f3.
	at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.findDriver(JDBCDriverManager.java:782)
	at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.registerDriver(JDBCDriverManager.java:903)
	at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.loadAndRegisterDriver(JDBCDriverManager.java:885)
	at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.doConnect(JDBCDriverManager.java:248)
	at org.eclipse.birt.report.data.oda.jdbc.JDBCDriverManager.getConnection(JDBCDriverManager.java:214)
	at org.eclipse.birt.report.data.oda.jdbc.Connection.connectByUrl(Connection.java:237)
	at org.eclipse.birt.report.data.oda.jdbc.Connection.open(Connection.java:162)
	at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaConnection.open(OdaConnection.java:250)
	at org.eclipse.birt.data.engine.odaconsumer.ConnectionManager.openConnection(ConnectionManager.java:165)
	at org.eclipse.birt.data.engine.executor.DataSource.newConnection(DataSource.java:224)
	at org.eclipse.birt.data.engine.executor.DataSource.open(DataSource.java:212)
	at org.eclipse.birt.data.engine.impl.DataSourceRuntime.openOdiDataSource(DataSourceRuntime.java:217)
	at org.eclipse.birt.data.engine.impl.QueryExecutor.openDataSource(QueryExecutor.java:407)
	at org.eclipse.birt.data.engine.impl.QueryExecutor.prepareExecution(QueryExecutor.java:317)
	at org.eclipse.birt.data.engine.impl.PreparedQuery.doPrepare(PreparedQuery.java:455)
	at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.produceQueryResults(PreparedDataSourceQuery.java:190)
	at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.execute(PreparedDataSourceQuery.java:178)
	at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery.execute(PreparedOdaDSQuery.java:145)
	at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.execute(DataRequestSessionImpl.java:620)
	at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:152)
	at org.eclipse.birt.report.engine.data.dte.DataGenerationEngine.doExecuteQuery(DataGenerationEngine.java:80)
	at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:267)
	at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1905)
	at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:80)
	at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62)
	at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)
	at org.eclipse.birt.report.engine.internal.executor.emitter.ReportItemEmitterExecutor.execute(ReportItemEmitterExecutor.java:46)
	at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:43)
	at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)
	at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:34)
	at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:65)
	at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)
	at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:140)
	at org.eclipse.birt.report.engine.layout.html.HTMLInlineStackingLM.resumeLayout(HTMLInlineStackingLM.java:111)
	at org.eclipse.birt.report.engine.layout.html.HTMLInlineStackingLM.layoutNodes(HTMLInlineStackingLM.java:160)
	at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)
	at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:140)
	at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:70)
	at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)
	at org.eclipse.birt.report.engine.layout.html.HTMLTableLM.layoutChildren(HTMLTableLM.java:132)
	at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:140)
	at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:70)
	at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:92)
	at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:100)
	at org.eclipse.birt.report.engine.presentation.ReportDocumentBuilder.build(ReportDocumentBuilder.java:249)
	at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:260)
	at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:85)
	at org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1317)
	at org.eclipse.birt.report.service.BirtViewerReportService.runReport(BirtViewerReportService.java:158)
	at org.eclipse.birt.report.service.actionhandler.BirtRunReportActionHandler.__execute(BirtRunReportActionHandler.java:81)
	at org.eclipse.birt.report.service.actionhandler.BirtGetPageActionHandler.__checkDocumentExists(BirtGetPageActionHandler.java:58)
	at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.prepareParameters(AbstractGetPageActionHandler.java:119)
	at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.__execute(AbstractGetPageActionHandler.java:104)
	at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)
	at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47)
	at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143)
	at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPage(BirtDocumentProcessor.java:87)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112)
	at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
	at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
	at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
	at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
	at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
	at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
	at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:265)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:68)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
...

后来经过多次查询资料后,发现了一个另外的配置信息:

this.setExtensionProperty("odaURL", props.getProperty("url"));
this.setExtensionProperty("odaDriverClass", props.getProperty("driver"));
this.setExtensionProperty("odaUser", props.getProperty("userid"));
this.setExtensionProperty("odaPassword", props.getProperty("password"));


配置后,重新启动,无任何问题,报表生成成功。

分享到:
评论

相关推荐

    Spring Boot MyBatis配置Druid多数据源oracle《--》mysql test finally.rar

    参考这个https://mrbird.cc/Spring-Boot-MyBatis Druid.html做的 配置多个数据源同时访问mysql和oracle数据库 互相交换数据 个人学习用 仅供参考 欢迎指教

    thunderbird C++ 源代码

    5. **数据存储**:邮件数据库管理系统,可能使用SQLite这样的轻量级数据库来存储邮件和配置信息。 6. **安全**:由于涉及个人信息,Thunderbird在设计时重视安全。这包括加密通信、证书管理、防止中间人攻击的措施...

    Thunderbird使用方法汇总

    - 数据备份:定期导出Thunderbird的数据到文件,以防意外丢失。 8. **故障排查与支持** - 日志查看:当遇到问题时,可以通过查看错误日志进行诊断。 - 社区支持:Mozilla社区有大量用户和开发者,提供帮助和解决...

    Unity hlappy bird 游戏源代码

    《Unity实现Happy Bird游戏源代码解析》 Unity是一款强大的跨平台游戏开发引擎,它被广泛应用于2D和3D游戏的制作,同时也适用于虚拟现实(VR)和增强现实(AR)项目。本篇将深入探讨如何使用Unity引擎来实现曾经在...

    android版FlappyBird源码

    1. 项目目录:AMFlappyBird中包含了项目的各个模块,如res资源文件夹、src源代码文件夹、AndroidManifest.xml配置文件等。 2. 工程依赖:源码可能依赖于Android SDK的特定版本以及支持库,需要确保Android Studio或...

    flappybird强化学习

    5. **数据集**:可能包含预处理的游戏状态数据,用于训练神经网络。 6. **配置文件**:可能有设置超参数、学习率、探索策略等的配置文件。 7. **结果展示**:可能有训练过程中的得分曲线图或者其他可视化结果,展示...

    FlappyBird

    `.classpath`和`.project`是Eclipse IDE的配置文件,用于管理项目的构建路径和元数据;`bin`目录存放编译后的类文件;`.settings`存储用户特定的项目设置;而`src`目录则是源代码的存放地,其中包含了游戏的主要逻辑...

    Thunderbird_Backup:允许在Mac OS上备份完整的Mozilla Thunderbird配置文件

    4. 配置备份:按照程序的提示,指定备份的位置和要备份的Thunderbird配置文件路径。 5. 执行备份:程序会执行备份过程,复制所有必要的设置和数据。 6. 存储和恢复:将备份文件安全存储在另一台设备或云存储服务中,...

    unity flappy bird

    `Assembly-CSharp.csproj`是Unity自动生成的C#项目的配置文件,包含了项目的所有源代码引用和编译设置。 接下来,`obj`和`ProjectSettings`目录分别存储了编译过程中产生的中间文件和项目设置。`obj`目录下的文件是...

    flappy bird压扁小鸟小游戏.zip

    在这个游戏里,JavaScript文件可能会包含游戏的主要逻辑,而其他文件可能是图像资源、音频文件或者游戏配置数据。 JavaScript特效在游戏开发中扮演着重要角色,它允许游戏在用户设备上实时运行,无需服务器端交互。...

    rpki-roas:格式为Bird的RPKI ROA

    # 在Bird配置文件中启用rpki模块 protocol rpki { # 指定RPKI服务器的URL或者本地存储库路径 source ; # 配置RPKI验证行为 action reject; } # 如果使用本地存储库,可能需要如下设置 source local { file /...

    网站实时监控Hummingbird.zip

    4. **配置**:根据项目需求配置Hummingbird 的设置文件。 5. **启动服务**:运行`node server.js`(或类似命令)启动Hummingbird 服务。 6. **监控界面**:在浏览器中访问指定URL查看实时监控数据。 总结,Humming...

    源代码:网站制作富文本解析,折线图,MD5,bluebird.rar

    这些库提供了丰富的API和配置选项,可以定制颜色、轴标签、数据点、动画效果等。折线图的实现涉及到数据的预处理、坐标系统的设置、以及图形渲染原理的理解。 接着,MD5(Message-Digest Algorithm 5)是一种广泛...

    Processing实现的一个类FlappyBird游戏

    1. Bird.pde:这是小鸟类的源代码,可能包含了小鸟的绘制、运动逻辑和碰撞检测。在Processing中,通常会用到PDE(Processing Development Environment)格式的文件来编写代码。 2. function.pde:这可能是包含游戏...

    elephant-bird-core-4.6rc1.zip

    对于NoSQL数据库HBase,Elephant Bird提供了对LZO和protobuf的支持,包括对列族的配置和数据读写的优化。这使得HBase可以更好地处理压缩数据,减少了存储空间需求,同时保持了高性能。 总结来说,Elephant Bird项目...

    elephant-bird-core-4.5.zip

    此外,elephant-bird-core-4.5还支持反序列化和序列化,以及生成自定义的InputFormat和OutputFormat,这些特性使得开发者能够轻松地将各种数据源集成到他们的大数据处理流程中。 接下来,我们转向scoverage-maven-...

    elephant-bird-pig-4.1.zip

    Elephant Bird将Cassandra的数据模型转换为Pig可以理解的形式,使用户能够方便地在Cassandra上执行分析和数据挖掘任务。这个版本(4.1)包含了对Cassandra CQL3的支持,使得处理Cassandra数据更加灵活和高效。 ...

    系统工具-文件下载-Thunderbird91.0b4.zip

    9. **开源**:作为开源软件,Thunderbird的源代码对公众开放,意味着用户可以自由查看、修改和分发软件,也有社区不断为其改进和维护。 在Thunderbird91.0b4版本中,可能包含以下改进和新特性: - 性能优化:提升...

    DRL-FlappyBird-master.7z

    标题中的"DRL-FlappyBird-master.7z"暗示了这是一个关于深度强化学习(Deep Reinforcement Learning,简称DRL)的项目,其中包含了用于训练和实现Flappy Bird游戏的源代码。Flappy Bird是一款非常流行的手机游戏,...

    小程序源码(无后台)_富文本解析,折线图,MD5,bluebird.rar

    使用时,需要配置数据源、样式等参数,然后在小程序页面上插入图表组件即可。 三、MD5加密 MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,可以将任意长度的信息映射为固定长度的摘要,通常用于验证...

Global site tag (gtag.js) - Google Analytics