2014-11-04 95 views
1

我使用Jasper Reports作爲我的Spring應用程序的一部分。我通過eclipse將應用程序部署在Tomcat 6服務器上,所以我的項目是一個WTP項目。我遇到的問題是,當我更改Jasper Reports文件(jrxml)時,我需要重新啓動服務器才能獲取已發佈的更改。我已經檢查了部署文件夾並更新了.jrxml,但出於某種原因瀏覽器不斷收到舊報告,我已經清除瀏覽器上的緩存,但沒有運氣。Tomcat需要重新啓動以採用Jasper Reports更改

關於如何解決這個問題的任何想法,在開發時都是非常煩人的。

+0

這不是一個Tomcat問題......它是一個JasperReports問題。您是使用JasperServer還是編寫自己的代碼來加載'.jrxml'文件,編譯它,填充數據等等? – 2014-11-04 14:43:20

+0

我添加了Spring配置文件來直接加載.jrxml,並將數據填充到Spring Controller方法中。謝謝 – 2014-11-05 15:06:51

+0

所以問題是文件被緩存的地方。它可能位於JasperReports組件,Spring組件或Tomcat本身。 Tomcat將緩存使用任何機制加載的文件,例如'[Webapp] ClassLoader.findResource'。如果您使用FileInputStream或以其他方式自己提取字節,那麼緩存不在Tomcat中,您必須在別處查找(即問題不是Tomcat特定的)。 – 2014-11-06 03:28:08

回答

0

我想你使用ireport來更改.jrxml,當你保存更改時,eclipse將不會立即通知那個。因此,如果需要,您需要在eclipse中新建項目,清理並重建項目,然後重新部署到tomcat。另外,你可以設置eclipse來自動生成項目(Porject - >自動檢查Build),並不斷刷新項目。當您在'服務器'視圖中看到項目狀態'同步'更改爲'Republic'時,您可以重新啓動服務器並查看更改。按'ctrl + f5'刷新所有緩存頁面。

+0

我不使用iReport,我在Eclipse中使用JasperSoft Studio。因此,當我更改.jrxml eclipse時會自動編譯並將其部署到Tomcat中,但是在重新啓動之前,tomcat不會執行更改。 – 2014-11-05 15:08:41

相關問題