【问题标题】:Tomcat requires restart to take Jasper Reports changesTomcat 需要重新启动才能接受 Jasper 报告更改
【发布时间】:2016-07-03 21:13:46
【问题描述】:

我在我的 Spring 应用程序中使用 Jasper Reports。我通过eclipse将我的应用程序部署在Tomcat 6服务器上,所以我的项目是一个WTP项目。我遇到的问题是,当我更改 Jasper 报告文件 (jrxml) 时,我需要重新启动服务器才能发布更改。我已经检查了部署文件夹并更新了 .jrxml,但由于某种原因,浏览器不断获取旧报告,我已经清除了浏览器上的缓存,但运气不佳。

关于如何解决这个问题的任何想法,在进行开发时都非常烦人。

【问题讨论】:

  • 这不是 Tomcat 问题...这是 JasperReports 问题。您是使用 JasperServer 还是编写自己的代码来加载 .jrxml 文件、编译它、填充数据等等?
  • 我添加了 Spring 配置文件以直接加载 .jrxml,并在 Spring Controller 方法上填充数据。谢谢
  • 所以问题是文件被缓存在哪里。它可以在 JasperReports 组件、Spring 组件或 Tomcat 本身中。 Tomcat 将缓存使用任何机制加载的文件,例如[Webapp]ClassLoader.findResource。如果您使用FileInputStream 或以其他方式自己获取字节,则缓存不在 Tomcat 中,您将不得不查看其他地方(即问题不是 Tomcat 特定的)。

标签: spring tomcat jasper-reports


【解决方案1】:

我假设您使用 ireport 更改 .jrxml,当您在其中保存更改时,eclipse 不会立即收到通知。所以你需要在eclipse中刷新你的项目,如有必要,清理并重建项目,然后重新部署到tomcat。

另外,您可以将eclipse设置为自动构建项目(Porject-->检查自动构建)并保持刷新项目。当您在“服务器”视图中看到项目的“已同步”状态更改为“共和国”时,您可以重新启动服务器并查看更改。按 'ctrl+f5' 刷新页面并刷新所有缓存。

【讨论】:

  • 我不使用 iReport,我在 Eclipse 中使用 JasperSoft Studio。因此,当我更改 .jrxml 时,eclipse 会自动编译并将其部署到 Tomcat 中,但 tomcat 在我重新启动它之前不会接受更改。
猜你喜欢
  • 2016-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多