2014-11-04 56 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

相关问题