2

在 Tomcat 中运行时(在带有调试器的 Eclipse 之外),您应该如何获取一个 .jasper 文件(例如作为 InputStream)以JasperFillManager.fillReport()供使用?目前我们的 .jasper 文件位于/WEB-INF/jasper.

我需要一个不会根据您运行报告的位置而中断的解决方案。如果在从 Eclipse 运行 Tomcat 时对其进行调试,System.getProperty("user.dir")则会返回C:/Eclipse ...,但很明显,当它部署到服务器时,该路径会有所不同。

你如何解决这个问题?

4

3 回答 3

0

If you do not plan to replace the .jasper file after it was created then you could use the resources and getResourcesAsStream.

于 2012-04-10T20:57:38.413 回答
0

通过从 Eclipse 中更改 Tomcat 启动配置工作目录,我设法从 Tomcat/Eclipse 运行此工作。这让您只需在 Java 代码中将相对路径传递给 fillReport()。但是我还没有尝试在 websphere 中进行测试......(有件事告诉我我很快就会再次诅咒 IBM)。

于 2012-04-12T13:07:11.617 回答
0

我相信您可以使用应用程序对象(假设您使用的是 JSP 而不是 servlet - 我没有使用它们)

InputStream input = new FileInputStream(new File(application.getRealPath("/WEB-INF/jasper")+"/report.jasper"));
于 2012-04-11T13:39:37.720 回答