2010-01-12 65 views
1

当我通过​​调用jrxml文件时,其抛出异常FileNotfoundException。 我尝试了绝对路径,但它不起作用。请帮忙。如何在jsp页面调用jasper报告

+0

提供失败的代码以及堆栈跟踪 – Bozho 2010-01-12 12:28:46

回答

1

FileNotFoundException通常表示文件不存在。从代码中获取路径并将其粘贴到文件系统浏览器中,并查看它是否存在。

如果确实如此,这意味着它是出于某种原因无法访问:

此异常将由FileInputStream中,FileOutputStream中,和RandomAccessFile的构造函数抛出当指定路径名的文件不存在。如果文件存在但由于某种原因无法访问,例如当试图打开只读文件进行写入时,也会由这些构造函数抛出。

1

你应该总是在Java IO东西中使用绝对路径。显然,你尝试过的人显然是错误的。也许你只是根据webapp的部署位置来猜测它。你不应该那样做。如果jrxml文件实际位于web内容中,则可以使用ServletContext#getRealPath()将相对网络路径转换为绝对磁盘文件系统路径,您可以在通常的Java IO内容中进一步使用该路径。

假设file.jrxml位于web内容的根(例如通过http://example.com/contextname/file.jrxml访问),这里有一个例子:

String absolutePath = getServletContext().getRealPath("file.jrxml"); 
File file = new File(absolutePath); 
0

这取决于你如何给它的参考文件。查看JRXmlLoader http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/xml/JRXmlLoader.html 的文档,您可以看到您可以将它传递给File对象的引用。你可能只是传入一个字符串,这可能是错误的。

尝试类似 String path =“/tmp/test.jrmxl”; 文件jrxmlFile =新文件(路径); JasperDesign jasperDesign = JRXmlLoader.load(jrxmlFile); 与适当的try/catch和更多,然后调试文件之前,你担心加载器。

你应该得到一些jasperreports文档。这些书对于那些基本的东西来说非常好。