2009-12-15 23 views
1

對不起假問題,但我失去了我的整個一天從JasperReport開始。問題是我總是收到這個異常:「org.xml.sax.SAXParseException:文件過早結束。」當我試圖讀取.jrxml文件。這是不可能的,因爲它是由iReport生成的。org.xml.sax.SAXParseException with JasperReports

我在jasper論壇上問過,但到目前爲止還沒有解決方案。當我在網上搜索這個錯誤時,通常涉及WebService技術,但是我在沒有應用程序容器的情況下在本地數據庫連接中運行我的應用程序。 任何想法?

在此先感謝。

+0

那麼它可能不是很好莫名其妙地形成。你可以pastebin XML文件嗎?你得到的錯誤是沒有形成好的東西的經典錯誤。 – 2009-12-15 17:06:13

+0

它的確定,它的確定,它與iReport生成,並在網頁瀏覽器中打開例如。 – NikolayGS 2009-12-15 17:57:31

+1

給你的代碼怎麼樣? SAXParseException可能是任何東西 - 即使它沒有找到該文件。 – Bozho 2009-12-15 23:01:40

回答

0

您可能想要確保您的iReport安裝使用適當的iText jar。如果您在JasperServer中使用iReport,則需要驗證兩者是否使用相同版本的iText。上次我在這種情況下看到這個錯誤時發現JasperServer的安裝使用的是比iReport更早的iText版本 - 並且它的需要舊版本。兩個產品使用相同的jar解決了這個問題。

+0

我沒有使用JasperServer。我只想在碧玉中快速開始。它是加載jrxml文件的最簡單的應用程序 - 主要方法。我將所有複製的../iReport/libs/*.jar移動到WORKSPACE/libs/Jasper /並將它們包含在我的項目中。結果是這個堆棧跟蹤 - > http://pastebin.com/m38b7f0c0。我的班級路徑是:http://pastebin.com/m11d2ff19和jrmxl - > http://pastebin.com/m221ce04b。這個愚蠢的問題終止了我的工作3天到現在...感謝您的幫助 – NikolayGS 2009-12-16 00:27:46

+0

看起來您正在使用'ant'來構建您的項目。在Eclipse中運行它時,是否會出現與在外部運行時一樣的錯誤?你使用的是什麼版本的iReport和Jasper? – spork 2009-12-16 14:02:54

0

您是否使用iReport製作文件並試圖在相同的iReport或其他iReport版本中打開它?

可能出現的問題:

  • 文件已在iReport的取得而在另一個版本中打開。
  • 該文件由iReport製作,然後在iReport之外修改XML源文件。

我希望你有一個以前版本的文件存在的SVN,如果是的話,嘗試比較它們。 另一個建議是,如果文件位於遠程文件夾(即服務器)上,則將其複製到本地文件夾並嘗試。

另一個猜測,你是否試圖用JasperReports編譯文件?當使用iReport版本創建文件並且JasperReport較舊或較新時,這是一個常見問題。確保iReport目錄中的jasperreports * .jar文件與您在項目中使用的文件相同。

更新:看看JavaForums,缺少xsd/dtd或saaj.jar可能會導致此問題。

+0

我只有一個版本的iReport和xml文件,甚至要在redactor中打開。是的japerreports jar是複製 - >粘貼從iReport /庫 感謝您的幫助 – NikolayGS 2009-12-16 00:32:32

0

您的應用程序中的JasperReports版本可能與您的應用程序中的版本不同。
C:\Users\XXXXX\.ireport\3.7.0\config\Windows2Local\Components
也許一些配置文件下