站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题关于session和Arraylist的问题

关于session和Arraylist的问题

摘要: 关于session和Arraylist的问题


tomcat4.1.30版本,系统用一段时间以后TOMCAT就会死掉,系统报错如下,哪位大虾,高手帮我分析一下这些错误信息

2006-09-25 16:29:07 StandardManager[/gotech_mf] Cannot serialize session attribute onduty_list for session 7FAAA2B450F1C17BBB281F2020C57C81
java.io.NotSerializableException: com.jstrd.sbgl.entity.Story_Data
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278)
at java.util.ArrayList.writeObject(ArrayList.java:529)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
。。。。。。。。。。。。。。。。。。。。。。。。。


把com.jstrd.sbgl.entity.Story_Data这个类实现java.io.Serializable接口


楼上的兄弟,能否详细点,或给个例子,小弟刚接触JSP请多指教


com.jstrd.sbgl.entity.Story_Data这个类在序列化的时候出错了,要implements Serializable


例子很简单,就是在你的那个类声明后加上:java.io.Serializable,然后重新编译运行



例子很简单,就是在你的那个类声明后加上: implements java.io.Serializable,然后重新编译运行


Story_Data implements Serializable
这个类Story_Data实现这个Serializable接口
将你定义的类实现串行化就可以了


同意


结贴吧






tomcat4.1.30版本,系统用一段时间以后TOMCAT就会死掉
-------------------------------------------------
你的tomcat死掉与你的Story_Data无关。
应该是你的程序中有太多没有释放的资源。

建议:
1、如果你操作了数据库,重点察看代码中是否在任何情况下,都释放了数据库连接;
2、检查你的程序,重点检查循环程序,看是否产生了大量的大对象(比如在循环内部构造新的集合等等),特别是静态的对象;
3、检查代码,看你是否把很多对象放在了session中,特别是一些数据存储的对象。如果有可能,把能够转到request的,都放在request中,如果必须放在session中,最好使用完后移除该对象。
4、你的错误指向的是你的Story_Data类,主要原因是Tomcat内存占用过大(原因可能是以上三种),它会自动把一些暂时处在不活动状态的对象序列化到硬盘上,而你的Story_Data没有实现Serializable接口,或者你实现了Serializable接口,但是,其中使用到了不能序列化的对象(比如ArrayList),所以,在序列化的时候报错。

多查查你的程序,虽然java可以自动垃圾回收,但是,也不是所有的垃圾都可以往容器里倒。

祝你好运:)
共同提高;)


↑返回目录
前一篇: 根据下拉列表的值生成不同控件
后一篇: 帮忙看个错误