2012-10-17 104 views
1

我正在嘗試使用jason-io序列化/反序列化MyClass實例。 jason-io庫有兩個類,分別執行序列化和反序列化的JsonWriter和JsonReader。這兩個操作都是從Grails控制器調用的。反序列化期間未找到類

在序列化過程中,創建了一個包含類名的JSON對象。反序列化在Class.forName(「... MyClass」)上失敗。類名是正確的。

我追溯了這個問題,發現MyClass的類加載器是一個(java.net)URLClassLoader,但JsonReader類加載器是一個(org.codehaus.groovy.grails.cli.support)GrailsRootLoader。不過,我不知道如何解決這個問題。

感謝

回答

1

這可以被鏈接到a known issue in groovy。該Bug報告的解決方法是指定的類加載器:

def file = new File('thingy.txt') 
file.withObjectInputStream(getClass().classLoader){ ois -> 
    def yourObject = ois.readObject () 
} 

withObjectInputStream方法是可用的常規其他類也是如此,比如我用的GZIPInputStream一個實例使用這個成功。