在使用jfinal3.0,结合jdk8 + jfinal自带容器启动项目后出现错误

错误信息:class sun.reflect.GeneratedSerializationConstructorAccessor1 cannot access its superclass sun.reflect.SerializationConstructorAccessorImpl


代码片段:
ByteArrayOutputStream bs = new ByteArrayOutputStream(128);
ObjectOutputStream dos = new ObjectOutputStream(bs);

dos.writeObject(this);  //此处报错

ByteArrayInputStream is = new ByteArrayInputStream(bs.toByteArray());
ObjectInputStream ios = new ObjectInputStream(is);
Object copy = ios.readObject();

上述代码报错,在copy对象时。已知对象已实现序列化接口。

评论区

JFinal

2017-02-09 11:32

这个是纯 java 问题了,通篇没有 jfinal 参与过。dos.writeObject(this) 参数的 this 对象不被 ObjectOutputStream 支持而已

晨风

2017-02-09 11:52

@JFinal 这个我明白,我想表达的是这个jfinal内置的这个jetty环境有这个问题。我现在使用最新版的tomcat不存在这个问题,最新jdk下main方法测试也不存在这个问题。另外这个原因是jdk支持的版本问题,新的jdk。oracle貌似移除了一些sun下的包。例如:sun.reflect.GeneratedSerializationConstructorAccessor1 。

JFinal

2017-02-09 11:55

@晨风 终究还是 jdk 的问题, jetty 不会有问题

晨风

2017-02-09 14:22

@JFinal 好的。现在就是只是不能使用内置的com.jfinal:jetty-server:8.1.8来做开发。其他目前没问题。

JFinal

2017-02-09 14:23

再多试一试,应该可以解决,搞定后记得再回来分享一下

海边男人喜欢浪

2017-12-15 15:31

请问这个问题是否有解决,我也遇到类似的问题了

一品璇宝

2017-12-21 19:30

有人解决吗? 换了新版本的jfinal就这样,登录页面都加载不出来

JFinal

2017-12-21 20:17

@一品璇宝 看看是不是这个错误: http://www.jfinal.com/feedback/2429

热门反馈

扫码入社