2012-08-13 101 views
1

我想在我的rptdesign文件(它在一個報告項目下)的JavaScript內部調用Java對象,在將我的類的jar放入/ Web-Inf/lib目錄和在的.class WEB-INF/classes中,我試圖像這樣的數據集的open事件:從Javascript調用Java(Birt)

gsh = new Packages.de.vogella.birt.stocks.daomock.StockDaoMock(); 

stock = gsh.getStockValues(); 

de.vogella.birt.stocks.daomock是位於Java項目(ClassPackage)軟件包的名稱/src

StockDaoMock是班級的名稱。

getStockValues()是該方法。

但我得到這個錯誤:

cannot evaluate the script. data set script method fetch returned null.expected a boolean value. 

有什麼不對?


我試圖通過 「的System.out.println(」 essai 「),以取代在獲取方法中的所有的代碼; 返回真;」 仍然有此錯誤 「數據集腳本方法」提取「返回null;預計布爾值。」

回答

2

啓用日誌記錄以查看堆棧跟蹤。 See the wiki

確保記錄異常(例子只是記錄消息):-)

Quick and Dirty Logging」也可能有幫助。

您可能也有類加載器問題。 See this blog post用於類加載器選項以及如何在使用BIRT時通過OSGi調試包發現。

[編輯]的錯誤消息意味着您忘記return true;return false;fetch方法結束。

+0

錯誤是:'無法評估腳本。 數據集腳本方法獲取返回null.expected一個布爾值。' 反正謝謝你。 – user1578720 2012-08-13 12:13:49

+0

啊,這個着名的無用錯誤。你使用BIRT 3.7.2嗎? – 2012-08-13 12:15:25

+0

我使用birt-report-designer-all-in-one-2_6_2 – user1578720 2012-08-13 12:17:28

-3

java在服務器上運行,javascripts在瀏覽器中運行,所以顯然你不能直接從javascript調用Java。

有一個庫叫DWR (Direct Web Remoting)。它可以將Java方法暴露給Javascript方法。當您調用Javascript時,它發出一個AJAX請求,然後DWRServlet處理它,執行所需的Java方法,並將方法結果返回給瀏覽器。

+1

在birt中,這是可能的。 – danrah 2013-09-10 07:28:24

+0

Birt是什麼? BI by eclipse?它不可能,只有像DWR這樣的庫被使用。 – 2013-09-10 19:23:40