Bean 的引用不会序列化
自己试一下 Seems to work...
BankAccount account = getBankAccountHome().findById(42);
ObjectOutputStream out = new ObjectOutputStream(...);
out.writeObject(account);
out.close();
You should get an exception when you attempt to send a message
ObjectInputStream in = new ObjectInputStream(...);
BankAccount account = (BankAccount)in.readObject();
in.close();
account.getBalance();
解决方案: 使用 Handle BankAccount account = getBankAccountHome().findById(42);
ObjectOutputStream out = new ObjectOutputStream(...);
out.writeObject(account.getHandle());
out.close();
ObjectInputStream in = new ObjectInputStream(...);
Handle handle = (Handle)in.readObject();
BankAccount account = (BankAccount)handle.getEJBObject();
in.close();
account.getBalance();
自己试一下 Seems to work...
BankAccount account = getBankAccountHome().findById(42);
ObjectOutputStream out = new ObjectOutputStream(...);
out.writeObject(account);
out.close();
You should get an exception when you attempt to send a message
ObjectInputStream in = new ObjectInputStream(...);
BankAccount account = (BankAccount)in.readObject();
in.close();
account.getBalance();
解决方案: 使用 Handle BankAccount account = getBankAccountHome().findById(42);
ObjectOutputStream out = new ObjectOutputStream(...);
out.writeObject(account.getHandle());
out.close();
ObjectInputStream in = new ObjectInputStream(...);
Handle handle = (Handle)in.readObject();
BankAccount account = (BankAccount)handle.getEJBObject();
in.close();
account.getBalance();
解决方案 »
- Java如何将二进制写入文件?
- 怎么用java写一个网页游戏的外挂,比如开心农场
- 求java中日期范围正则表达式
- 如何把hashmap中的数据转移到arraylist中?
- s1 += 1和s1 = s1 + 1的区别
- 请教: 如何在Jtable中某列使用JList?
- 类名.java 使用了未经检察与安全的操作是什么问题 ???????
- 请问xp下哪里可以添加execution path?(dos时代可以在autoexec.bat里添加的那个路径)
- \n是一个软回车,在我输出的txt文件里根本就没有真正换行!!!!怎么办?
- 关于替代suspend()和resum()等已过时的方法
- 什么叫事件派发线程,和主线程有什么区别?
- jboss 3.0 下本地接口查找出错?错误提示和源码如下,请帮助解决200分。
User序列化并没有保证Connection也序列化了.
所以User序列化之后会丢失数据库连接,自然不能操作数据库.
这样肯定不行!Connection是不能被系列化的!通常包含有数据库连接的对象,都不应系列化,用transient标识!
数据库操作要在你的applet中显示的完成!
或者把数据传回服务器,由服务器完成!(推荐)
还没试成功,成功后就给分。
谢谢诸位!
{
/* field declarations */
public String name;
public boolean gender;
...
public transient java.sql.Connection conn;
}
在Applet中,
User u = new User();
u.name='JavaPro';
u.gender=true;
java.io.ObjectOutputStream out = ...;
out.writeObject(u);
out.close();
在Servlet中,
java.io.ObjectInputStream in = ...;
User u = (User)in.readObject();
java.sql.Connection conn = ...;
u.conn = conn;
u.loadFromDB();或者u.saveToDB();