最近要做一个图形编辑器,弄了N久也没弄出来,后来看到可以根据birt的报表设计器改,改动是巨大的,其实说是改,还不如说拿它当例子,好熟悉一下gef,感觉收获很大,结合八进制的blog,看起来就不那么费劲了,但是在建立脚本数据库的时候总出现问题,改来改去,改来改去,搜索无数次咋就不好使呢,又debug了3天,终于发现了,事实上是好使的,因为自己构建出来的报表设计器比发布出来的插件对一页,也就是正常的报表设计器是包含5个页的多页编辑器,而我自己构建出来的是6个!预览按正常套路是第五个页(Preview),而我每次都点第六个页(New Preview Prototype),所以总抛异常(由ClassNotFoundException引起的),偶尔发现了这个问题,也就发现用preview好使,所以就继续debug,发现原来是类加载器在搞鬼,两个地方调用的代码是一样的,不过因为用了不同的类加载器实例(类型也不同,Preview用的是org.eclipse.birt.report.viewer.utilities.ReloadableClassLoader,New Preview Prototype用的是org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader),因为如果报表设计器里需要用脚本数据库的话,需要把引用的类(这里是编译后的.class文件)放到org.eclipse.virt.report.viewer插件的/birt/WEB-INF/classes/目录下,记住别忘了,把对应的包也加上,比如类的全名是a.b.c,那么c.class应该放到/birt/WEB-INF/classes/a/b/下。这样就不会出错了!因为通过ReloadableClassLoader类加载器可以加载这个目录下的类文件。
现在回到我的问题上,由于对类加载器知道的非常少,就不多说了,给和我遇到同样问题的人提供一个解决方案,如果想让New Preview Prototype好用,需要把脚本数据库中的类文件(.class文件)再复制一份到org.eclipse.birt.report.designer.ui.preview.static_html插件里,(本来以为这里会有可见性的问题,原来以为需要改MANIFEST.MF的Export-Package,刚才测试了一下没影响,看来Export-Package可见性是真对别的插件的,而不是针对osgi平台的,哈哈,正是这么回事!笨了!),还有一处改动就是在org.eclipse.birt.report.designer.ui.preview.static_html插件的org.eclipse.birt.report.designer.ui.viewer.StaticHTMLViewer类的内部类HyperlinkEngineConfig的构造函数最后加上如下三行代码:
ClassLoader appClassLoader = StaticHTMLViewer.class.getClassLoader( );
getAppContext( ).put(
EngineConstants.APPCONTEXT_CLASSLOADER_KEY, appClassLoader );
这里的appClassLoader也是org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader的对象,但这个对象是加载这个插件的类加载器,所以加载脚本数据库的类也就没问题了,因为脚本数据库的类也被放到了这个这个插件里(刚才那部)
我上面所说的插件在我这里其实就是工程,因为我是自己build的。
语文学的不好,不知道会不会对大家有帮助!这段时间我会把我遇到的别的问题和大家一起分享的,因为很多问题都是看别人的文章解决的:)
因为birt在解析js脚本的时候用到了rhino,一个在js里可以调用java类的框架,这里有动态生成.class的java文件,也值得看一看,虽然没看懂,呵呵,看懂了也会和大家一起交流,好的东西就要大家一起分享嘛!这是我写的第一个博客,希望大家对付看,也希望提出批评等宝贵意见,互相学习互相进步!
分享到:
相关推荐
BIRT(Business Intelligence and Reporting Tools)是Eclipse基金会下的一个开源项目,专注于提供报表和商业智能解决方案。在本文中,我们将深入探讨BIRT 3.7版本的源代码及其相关知识点。 1. **BIRT架构**: ...
Birt Viewer则是BIRT框架中的一个重要组成部分,是一个基于Web的应用程序,用户可以通过浏览器来查看和交互BIRT报表。 在深入探讨Birt Viewer源代码之前,我们需要了解Eclipse平台。Eclipse是一个开放源码的软件...
BIRT(Business Intelligence and Reporting Tools)是一个开源的报表系统,由Eclipse基金会维护。它提供了丰富的API,使得开发者能够在其应用程序中嵌入复杂的报表和数据分析功能。本篇将围绕"Birt API"和"Birt ...
综合以上四个文件,我们可以了解到BIRT作为一个强大的报表工具,其API提供了丰富的功能,不仅可以用于生成复杂的报表,还可以创建定制化的数据可视化组件。同时,BIRT提供了详尽的中文文档和教程,使得开发者无论是...
【BIRT POJO作数据源】是BIRT报表设计中的一种高级用法,它允许开发者直接使用Java的Plain Old Java Objects (POJOs)作为报表的数据源,而非传统的数据库或其他结构化数据源。这种方式提供了更大的灵活性,特别是...
- **BIRT**: BIRT(Business Intelligence and Reporting Tools)是Eclipse基金会下的一个开源项目,用于创建和集成复杂的报表应用。 - **A Field Guide to Reporting**: 指导手册,旨在为用户提供深入的指导和支持...
本资源包名为"Birt_file.zip_birt",包含三份文档:"Birt使用经验谈1.doc"、"Birt使用经验谈2.doc"和"Birt使用经验谈3.doc",以及一个文本文件"www.pudn.com.txt"。这些文件很可能是用户在使用BIRT过程中积累的经验...
《BIRT Viewer 2.2 参数设置详解》一文深入探讨了BIRT(Business Intelligence and Reporting Tools)这一强大开源报表工具的高级应用,特别是在BIRT Viewer 2.2版本中的参数配置与优化策略。BIRT作为一款成熟且功能...
BIRT(Business Intelligence and Reporting Tools)是Eclipse基金会下的一个开源报表系统,它提供了一整套工具,使得开发者能够创建强大的数据可视化和报告解决方案。BIRT API是BIRT框架的一部分,用于扩展和自定义...
【BIRT资料】EclipseCon2005_Introducting_the_BIRT_Project.ppt 这个文件是关于BIRT项目的一个介绍,源自2005年的EclipseCon大会。BIRT(Business Intelligence and Reporting Tools)是Eclipse基金会下的一款开源...
**BIRT(Business Intelligence and Reporting Tools)** 是一个开源的报表系统,主要用于生成复杂的数据报告。它被设计为可嵌入到任何Java应用程序中,包括Web应用,为企业提供强大的数据分析和展示能力。在BIRT中...
通过上述内容,我们不仅解答了关于“birt_web解压密码”的具体问题,还进一步介绍了与之相关的背景知识和技术细节。这对于理解BIRT Web应用的使用和安全保护具有重要意义。无论是开发者还是普通用户,在处理压缩文件...
2. **创建报告文件**:在项目中新建一个 `.rptdesign` 文件,这是 BIRT 报告的设计文件格式。 #### 三、数据源与数据集 **数据源** 和 **数据集** 是报告设计中非常重要的组成部分。 1. **创建 JDBC 数据源**:...
综上所述,BIRT不仅是一个强大的报表工具,更是企业级应用中不可或缺的数据展示与分析平台,通过灵活的报表设计、多样的数据源支持以及无缝的J2EE应用集成,为企业提供了全面的数据可视化解决方案。
开源报表系统,需要两个分卷birt-2_2_2.part1与birt-2_2_2.part2
BIRT的主要目标是提供一个灵活的开发环境,使得开发人员可以轻松地构建各种复杂的报表,包括表格、图表、文本和图像等元素。 1.1 报表介绍 报表是数据可视化的重要手段,BIRT报表可以帮助用户将数据库或其他数据源...
下载完成后,读者将获得一个压缩包birt-runtime-4_4_2-20150217.zip。 步骤2:解压缩BIRT压缩包 将下载的压缩包birt-runtime-4_4_2-20150217.zip解压缩,然后在解压缩后的文件夹birt-runtime-4_4_2/...
- 定义数据源和数据集:在“数据探索”视图中添加一个数据源,并使用SQL查询来定义数据集。 - 设计报告布局:在报告设计器中设计报告的布局,包括表格、图表和其他可视化元素。 **3. 视图介绍** - **调色板...
**BIRT(Business Intelligence and Reporting Tools)是Eclipse基金会下的一个开源项目,专门用于生成企业级的报表和数据可视化解决方案。本资料集“birt.rar_birt”旨在帮助初学者快速掌握BIRT开发,实现高效的...
BIRT XML数据源是BIRT平台中的一个重要组成部分,用于处理XML格式的数据。下面将详细阐述BIRT XML数据源的相关知识点。 1. **BIRT概述**: BIRT是由Eclipse基金会维护的一个开源项目,旨在为Java和Web应用程序提供...