2013-03-21 36 views
4

我希望有人能爲我澄清這一點,這樣我可以更好地理解JAXB對象的編組如何工作。JAXB對象沒有實現可序列化的後果是什麼?

通過閱讀和查看示例,我的理解是JAXB對象必須實現java.io.Serializable,以便可以對對象進行編組和解組。當我的某個JAXB對象沒有實現可序列化時,我不確定的部分是發生了什麼(讀取:結果是什麼)?這在過去,結果在錯誤發生在日誌文件類似於

ERROR [example.package.name.MyJaxbClass.data]DiskStorageFactory.call{503} | Disk Write of -309037891 failed: 
java.io.NotSerializableException: example.package.name.myJaxbClass$MyNonSerializedElement 

然而,代碼的其餘部分似乎正常工作。它對你的JAXB類實現可序列化有多重要,以及當它們不存在時會發生什麼?

+0

爲什麼被標記爲[tag:spring]?在這個問題中,我沒有看到Spring特有的。 – 2013-03-21 13:52:05

回答

4

A JAXB (JSR-222)對象不需要實現java.io.Serializable以便將其轉換爲XML。來自XML轉換的對象不會作爲Java序列化的一部分發生。當然,如果您希望將對象序列化以供您的應用程序的其他部分使用,那麼您需要爲其正確配置它們。

+0

我認爲這有助於澄清問題。序列化實際上並不是用於編組JAXB對象,而是用於檢索對象後需要序列化的任何事情。例如,將其存儲在會話cookie中。這聽起來是對的嗎?謝謝您的幫助。 – ae14 2013-03-21 15:15:05

+0

@ ae14 - 是的。 – 2013-03-21 15:19:02

相關問題