CMP的ejb, 当我在客户端调用ejbRemove()时,总是抛出RemoteException

graygu 2004-04-15 04:12:55
我决保我的设置和编程都是正确的,但是每次客户端调用ejbRemove()时,总是抛出RemoteException。我怀疑这个是正常的,应该remove数据库记录后,记录所对应的bean就没有了。
我的理解对吗?

java.rmi.NoSuchObjectException: EJB Exception: : javax.ejb.NoSuchEntityException: [EJB:010140]Bean with primary key: '2' not found.


另外,数据库中的相应行是被删除了。
...全文
61 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
panpan221 2004-04-16
  • 打赏
  • 举报
回复
新手来学习,友情UP
廖雪峰 2004-04-16
  • 打赏
  • 举报
回复
在你remove之前,肯定已经获得了一个EntityBean的Remote引用或Local引用,只有两种可能:
MyEntityLocal r = home.create(...); // 用create方法创建一个entity bean
or
MyEntityLocal r = home.findByXxxx(...); // 用finder方法获得一个或多个entity bean
然后调用
r.remove();

一旦调用成功了,此纪录在数据库中就被删除,后面不可对r操作

若调用失败,会有失败的原因,通常有两种:
1.此Entity已被删除,可能有些程序绕过entity bean直接用jdbc删掉了数据库纪录
2.当前不能删除此entity bean,比如可能另一个线程正在对此entity进行事务操作
graygu 2004-04-15
  • 打赏
  • 举报
回复
ok, in EJB, there are two remove methods, one is remove(Handle),
another one is remove(Object)
Object is for primary key, but, what is "Handle" for?
The reference of one EJB Bean?
北极猩猩 2004-04-15
  • 打赏
  • 举报
回复
客户端是不能调用ejbRemove以及所有以ejb开头的方法的,进一步说这些类是在客户端代码重应该是不可见的。
sandyen 2004-04-15
  • 打赏
  • 举报
回复
cmp?
我觉得你是调用了多次,如果能debug你就跟踪以下
tanguangbin 2004-04-15
  • 打赏
  • 举报
回复
当容器打算删除你的BEAN实例时就会调用ejbRemove方法.不是客户端调用ejbRemove()的.
tanghuan 2004-04-15
  • 打赏
  • 举报
回复
肯定是调remove()的时候,记录已经被删除了,当然会出错了
one_bird 2004-04-15
  • 打赏
  • 举报
回复
同意楼上~
icy_csdn 2004-04-15
  • 打赏
  • 举报
回复
1.应该调用remove方法,怎么能调用ejbRemove方法呢,
ejbRemove方法是由Container回调用的

2. remove以后,bean并不一定正直删除,一般情况是回收到bean沲中。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧