当前位置: 技术问答>java相关
如何在Session Bean里返回多条记录
来源: 互联网 发布时间:2015-01-12
本文导语: 我想在远程接口返回多条记录,应该使用什么类呢? 比如说返回一个报表的内容,就是由多条记录组成的。 我使用了java.util.Enumeration类,但是出现了错误 weblogic.rmi.ServerException: A remote exception occurred while executing ...
我想在远程接口返回多条记录,应该使用什么类呢?
比如说返回一个报表的内容,就是由多条记录组成的。
我使用了java.util.Enumeration类,但是出现了错误
weblogic.rmi.ServerException: A remote exception occurred while executing the me
thod on the remote object
- with nested exception:
[weblogic.rmi.MarshalException: error marshalling return
- with nested exception:
[java.io.IOException: Class java.util.Vector$1 with code=123 does not implement
Serializable, Externalizable or WLSerializable]]
at weblogic.rmi.extensions.AbstractRequest.sendReceive(AbstractRequest.j
ava:76)
at jjmis.business.StatBeanEOImpl_WLStub.GetStat_1(StatBeanEOImpl_WLStub.
java:241)
at jjmis.business.StatBeanEOImpl_ServiceStub.GetStat_1(StatBeanEOImpl_Se
rviceStub.java:149)
at jjmis.business.Client_1.main(Client_1.java:32)
这是为什么呢?在Bean之中我的最后一句话是:return v.elements();
v是一个Vector类型,上面的话好象是说Vector没有实现序列化???
比如说返回一个报表的内容,就是由多条记录组成的。
我使用了java.util.Enumeration类,但是出现了错误
weblogic.rmi.ServerException: A remote exception occurred while executing the me
thod on the remote object
- with nested exception:
[weblogic.rmi.MarshalException: error marshalling return
- with nested exception:
[java.io.IOException: Class java.util.Vector$1 with code=123 does not implement
Serializable, Externalizable or WLSerializable]]
at weblogic.rmi.extensions.AbstractRequest.sendReceive(AbstractRequest.j
ava:76)
at jjmis.business.StatBeanEOImpl_WLStub.GetStat_1(StatBeanEOImpl_WLStub.
java:241)
at jjmis.business.StatBeanEOImpl_ServiceStub.GetStat_1(StatBeanEOImpl_Se
rviceStub.java:149)
at jjmis.business.Client_1.main(Client_1.java:32)
这是为什么呢?在Bean之中我的最后一句话是:return v.elements();
v是一个Vector类型,上面的话好象是说Vector没有实现序列化???
|
凡是要在ejb中(不管是Entity Bean 还是 Session Bean)返回成批数据,你可以
用返回一个class来实现,但这个class一定要实现Serializable接口。否则就会报错!
你试一下下面的方法:
public class MyVector implements Serializable
{
public Vector v;
public MyVector(Vector v){
this.v = v;
}
}
将你的return v.elements();改成:
MyVector mv = new MyVector(v);
return mv;
另外,将此方法的返回参数改为MyVector就可以了
用返回一个class来实现,但这个class一定要实现Serializable接口。否则就会报错!
你试一下下面的方法:
public class MyVector implements Serializable
{
public Vector v;
public MyVector(Vector v){
this.v = v;
}
}
将你的return v.elements();改成:
MyVector mv = new MyVector(v);
return mv;
另外,将此方法的返回参数改为MyVector就可以了