標籤:birt
首先查看工程的web.xml檔案中“BIRT_RESOURCE_PATH”屬性的設定,此屬性設定的是“使用者資源存放路徑,這些資源套件括 library 檔案,image 檔案等。預設是當前根目錄。”比如我的設定為“/library”,則表示是所有的庫檔案都是在跟木下的library目錄下。
查看報錯報表檔案的xml原始碼,發現引入的庫路徑為“library/ds.rptlibrary”,這是在將庫檔案拖放到報表檔案時自動添加的,此時完成報表後在預覽和運行時可以正常看到結果,但是在tomcat下會執行出錯,即標題提示的錯誤。
解決辦法:
a.刪除報表檔案的ds.rptlibrary引用;
b.點擊eclipse上方的功能表列“視窗”→“喜好設定”,左側找到“報表設計”→“資源”,點擊“選擇”找到當前工程下的library目錄,然後確定退出。
c.重新將ds.rptlibrary引入到報表檔案中。
d.預覽、運行報表均正常,在tomcat下執行也正常。
個人理解喜好設定中設定的資源屬性是相對工程的library配置,當拖放library到報表檔案時,birt會讀取此配置並添加相對路徑(預設為當前工程路徑,因此當此配置為空白時添加的是library/ds.rptlibrary),此時預覽報表正常。當啟動tomcat後,web.xml中的配置則會將此配置定義為library目錄下,然後再根據預設的配置library/ds.rptlibrary尋找,此時尋找庫的路徑相對於工程下的“/library/library/ds.rptlibrary”檔案,此時當然找不到庫檔案了。修改後則保證了在預覽和在tomcat下運行報表時尋找的路徑均為工程下的library目錄,從而保證了報表正常解析。
org.eclipse.birt.report.data.oda.jdbc.JDBCException: Missing properties in Connection.open(Propertie