grails - 反序列化期间的ClassNotFound

标签 grails

我正在尝试使用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/

相关文章:

grails - 如何使用 groovy 调用 Grails 中的服务

java - Json 作为 Grails Controller 的参数

grails - 减少 Grails 项目构建时间的常用技术

grails - Grails文件上传未使用正确的内容类型

grails - 检查GORM有效性的最快方法

validation - Grails 根据 xsd 1.1 验证 xml 文档

grails - 编写Grails应用脚本

javascript - 如何使用Grails捕获图像并从网络摄像头保存?

grails - 为 Log4j2 配置 Grails 3

hibernate - GORM createCriteria或带有别名的语句