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。不过,我不知道如何解决这个问题。

谢谢

4

1 回答 1

1

这可能与groovy 中的一个已知问题有关。该错误报告中的解决方案是指定类加载器:

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

withObjectInputStream方法也可以在其他类的 groovy 中使用,例如,我成功地将其与 GZIPInputStream 的实例一起使用

于 2013-01-29T15:54:35.587 回答