最近使用Eclipse官方的报表工具开发,好歹完成了任务,期间真是各种怒!下面稍微汇总下BIRT报表使用出现的问题:
1. OutOfMemoryError: PermGen space:
这是个奇葩的异常,用Eclipse+Tomcat 启动就会抛出这个异常,OK,这个问题对于开发者来说是很容易解决的,改下Tomcat配置,发现不行!Eclipse运行内存加大,不行!JDK缓存配置加大,不行!各种不行,哥完全误解了,后来实在无聊的时候,抛开Eclipse,直接运行Tomcat/bin/startup.bat,奇葩,可以了!好吧,至今没找到原因!(求解释!)
另:其实这个BUG,在03年就有人向SUN公司提了,所以找到了这句好玩的话: OutOfMemoryError: PermGen space----A bug this critical is open since 2003? Absolutely shameful.
2. 版本不匹配报错!此种错误一般是因为你的Eclipse插件版本和项目使用的BIRT核心包版本不匹配造成的!
如果总是报你的相关目录底下没有找到报表文件,那么你可以象这样尝试解决:
a. 修改如下两行:(下面代码仅做参考)
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.21" id="1">
<property name="createdBy">MyEclipse Report Designer Version 8.0.0</property>
b. 你的Eclipse插件编辑工具,生成了目前你项目无法识别的XML代码:
如:我在项目中碰到了增加HyperLink类型是drill-through,往上设置参数时,加载报表报找不到报表的错误。
项目的报表引擎能够识别的XML格式是如下情况:
<structure>
<property name="paramName">kssj</property>
<expression name="expression" type="javascript">params["kssj"].value</expression>
</structure>
而使用当前Eclipse工具配置时,生成的XML是如下情况:
<structure>
<property name="paramName">kssj</property>
<simple-property-list name="expression">
<value type="javascript">params["kssj"].value</value>
</simple-property-list>
</structure>
以上差异导致不能识别,手动更改后就OK了!
来源:oschina
链接:https://my.oschina.net/u/256288/blog/169857