最近使用Eclipse官方的報表工具開發,好歹完成了任務,期間真是各類怒!下面稍微彙總下BIRT報表使用出現的問題: javascript
1. OutOfMemoryError: PermGen space: java
這是個奇葩的異常,用Eclipse+Tomcat 啓動就會拋出這個異常,OK,這個問題對於開發者來講是很容易解決的,改下Tomcat配置,發現不行!Eclipse運行內存加大,不行!JDK緩存配置加大,不行!各類不行,哥徹底誤解了,後來實在無聊的時候,拋開Eclipse,直接運行Tomcat/bin/startup.bat,奇葩,能夠了!好吧,至今沒找到緣由!(求解釋!) express
另:其實這個BUG,在03年就有人向SUN公司提了,因此找到了這句好玩的話: OutOfMemoryError: PermGen space----A bug this critical is open since 2003? Absolutely shameful. 緩存
2. 版本不匹配報錯!此種錯誤通常是由於你的Eclipse插件版本和項目使用的BIRT核心包版本不匹配形成的! eclipse
若是老是報你的相關目錄底下沒有找到報表文件,那麼你能夠象這樣嘗試解決:
工具
a. 修改以下兩行:(下面代碼僅作參考)
this
<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> spa
b. 你的Eclipse插件編輯工具,生成了目前你項目沒法識別的XML代碼:
插件
如:我在項目中碰到了增長HyperLink類型是drill-through,往上設置參數時,加載報表報找不到報表的錯誤。
xml
項目的報表引擎可以識別的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了!