2010-01-12 52 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文檔。這些書對於那些基本的東西來說非常好。