警告:[kryo]無法使用kryo的ClassLoader加載類slade.core.Child。重試與目前...警告:[Kryo]無法使用Kryo的類加載器加載類x
無法找到類:slade.core.Child
序列化跟蹤:
子(slade.core.Parent)
我有一個問題,即嘗試反序列化根對象類型中包含的自定義對象類型時,Kryo拋出上述錯誤。這隻發生在從OSGi包內運行並從另一個OSGi包內引用對象時。 (我使用Karaf作爲我的OSGi實現)
我可以看到,這是類加載器,但我可以看到它使用它所需的類型加載器。我上傳了一個tar,其中包含NetBeans內部創建的3個示例項目,以顯示孤立的問題。沒有使用自定義類加載器(如示例代碼中所示)。
項目設置:
核心
- OSGi包
- 包含
Parent
和Child
類 - 出口一切
包子DLE
- OSGi包
- 對KRYO
- 依賴性對芯的依賴
- 創建的
Parent
含有Child
一個實例的實例,再序列成使用KRYO一個字節數組並試圖反序列化回目標(這是發生錯誤的地方) - 使用類加載器:
BundleWiringImpl$BundleClassLoader
應用
- Java應用程序
- 有
- 上KRYO 的依賴對 芯
- 依賴性創建的
Parent
含有Child
一個實例的實例,再序列轉換成使用Kryo的字節數組併成功反序列化爲對象 - 使用類加載器:
Launcher$AppClassLoader
有關如何解決此問題的任何建議將不勝感激!
源代碼可以從here下載。
我的確看到了有關在kryo實例上設置類加載器的問題,但是我確信它在我嘗試時沒有用。我可能沒有正確實施,所以我會再看看它。我想我可能已經看到了關於註冊課程的一些內容,所以我會進一步深入研究 –