最近在做个项目, 客户端是桌面程序+EJB(中间数据处理).
我在显示层调用一个stateless对象A的方法, 例如A.initList(List list),该方法返回void. 在该方法中仅有一行代码:
list.add("this is test");
当调用这个方法后,我在显示层for循环打印出list中的元素,却没有"this is test".
大家知道这是为什么吗? 难道是远程调用的问题?
ps: ejb部署在JBosss服务器中.
最近在做个项目, 客户端是桌面程序+EJB(中间数据处理).
我在显示层调用一个stateless对象A的方法, 例如A.initList(List list),该方法返回void. 在该方法中仅有一行代码:
list.add("this is test");
当调用这个方法后,我在显示层for循环打印出list中的元素,却没有"this is test".
大家知道这是为什么吗? 难道是远程调用的问题?
ps: ejb部署在JBosss服务器中.
你调用remote接口肯定不行,你传入的List对象和EJB方法里面处理的List对象应该不是同一个,因为根本不是同一个JVM,当然什么都没有啦,你把List作为返回值试试。
要在EJB方法中传入或者返回对象,该对象必须是可序列化的,可见并不是引用的同一个对象,而是将对象序列化之后进行传输的。