我正在尝试使用jason-io序列化/反序列化MyClass实例。 jason-io库具有两个类,即JsonWriter和JsonReader,它们分别执行序列化和反序列化。这两个操作都是从Grails Controller 调用的。
序列化过程中,将创建一个JSON对象,其中包含类名。在Class.forName(“... MyClass”)上反序列化失败。类名正确。
我已经跟踪了问题,发现MyClass的类加载器是(java.net)URLClassLoader,但是JsonReader的类加载器是(org.codehaus.groovy.grails.cli.support)GrailsRootLoader。不过,我不知道该如何解决。
谢谢
最佳答案
这可能链接到a known issue in groovy。该错误报告中的解决方案是指定类加载器:
def file = new File('thingy.txt')
file.withObjectInputStream(getClass().classLoader){ ois ->
def yourObject = ois.readObject ( )
}
在其他类上,withObjectInputStream方法也可在常规方法中使用,例如,我已成功将其与GZIPInputStream实例一起使用。
关于grails - 反序列化期间的ClassNotFound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12941750/