2012-09-12 15 views
4

我有一個JAXB marshall/unmarshall進程可以正常工作,除此之外:有時我需要取消組織的文件是空的或格式不正確,因此unmarshall會拋出異常。這是好的,但在此異常之後,我解開的文件(源xml文件java對象)被阻止。我不能使用它。JAXB解組錯誤之後的文件被阻塞的文件

我注意到這個嘗試在unmarshall異常之後立即刪除或重命名文件。如果沒有發生異常,那麼可以毫無問題地使用這些文件,因爲它應該如此。

有什麼辦法可以「解鎖」這個文件嗎?我認爲必須有任何方式來釋放,關閉或釋放已阻塞我的文件的JAXB上下文或unmarshaller對象的資源。

由於提前,

達尼

+0

發佈您的代碼將幫助我們更好地理解您的問題。我會很有興趣看到你在捕捉異常之後正在做什麼 – Sujay

回答

0

您可以創建從你的文件FileInputStream,然後解組這一點。然後,您可以更好地控制發生錯誤時發生的情況。

FileInputStream inputStram = new FileInputStream(file); 
Foo foo = (Foo) Unmarshaller unmarshal(inputStream);