Java 如何在jsp页面上调用jasper报告
当我通过Java 如何在jsp页面上调用jasper报告,java,jsp,jasper-reports,Java,Jsp,Jasper Reports,当我通过.load()调用jrxml文件时,它会抛出一个异常FileNotfoundException。 我尝试过绝对路径,但它不起作用。请帮助。FileNotFoundException通常表示文件不在那里。从代码中获取路径并将其粘贴到文件系统资源管理器中,然后查看它是否存在 如果是,则表示由于某种原因无法访问: 当具有指定路径名的文件不存在时,FileInputStream、FileOutputStream和RandomAccessFile构造函数将引发此异常。如果文件确实存在,但由于某些原
.load()
调用jrxml
文件时,它会抛出一个异常FileNotfoundException
。
我尝试过绝对路径,但它不起作用。请帮助。
FileNotFoundException
通常表示文件不在那里。从代码中获取路径并将其粘贴到文件系统资源管理器中,然后查看它是否存在
如果是,则表示由于某种原因无法访问:
当具有指定路径名的文件不存在时,FileInputStream、FileOutputStream和RandomAccessFile构造函数将引发此异常。如果文件确实存在,但由于某些原因无法访问,例如试图打开只读文件进行写入时,这些构造函数也会抛出该文件
在JavaIO中应该始终使用绝对路径。显然你试过的那一个是完全错误的。也许你只是根据webapp的部署位置猜到的。你不应该那样做。如果
jrxml
文件实际上位于webcontent中,那么您可以使用它将相对web路径转换为绝对磁盘文件系统路径,然后在通常的Java IO中进一步使用该路径
假设file.jrxml
位于webcontent根目录中(例如可通过http://example.com/contextname/file.jrxml
),下面是一个示例:
String absolutePath = getServletContext().getRealPath("file.jrxml");
File file = new File(absolutePath);
这取决于您如何为其提供对文件的引用。查看JRXmlLoader的文档 您可以看到,您可以通过引用将其传递给文件对象。您可能只是传递了一个字符串,这可能是错误的 试试像这样的东西 字符串路径=“/tmp/test.jrmxl”; 文件jrxmlFile=新文件(路径); JasperDesign JasperDesign=JRXmlLoader.load(jrxmlFile); 使用适当的try/catch和more,然后在担心加载程序之前先对文件进行调试
您可能应该获得一些jasperreports文档。这些书非常适合这些基本的东西。提供失败的代码和堆栈跟踪