为什么出现Attempt to get lock ref with a null object???

03-09-19 licy
我定义一个实现了Serializable接口的类:EmpInfoDependentValue 用于保存和传输数据。

在一个BMP实体Bean的实现中我定义了一个远程方法

addItem(EmpInfoDependentValue),

在Session Bean或者客户端,调用这个方法时总是出现这个错误:

java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:

java.rmi.ServerException: EJBException:; nested exception is:

javax.ejb.EJBException: null; CausedByException is:

Attempt to get lock ref with a null object; CausedByException is:

Attempt to get lock ref with a null object;

请各位大虾指点一下迷津.

charlie
2003-09-22 09:38
好像是你的BMP事务过程设置问题,跟值对象没关系

licy
2003-09-22 11:06
多谢你的回复

看了国外一个论坛,我已经解决了这个问题。

就是在这种情况下,ejbCreate中一定要返回一个主健,不能返回null,然后才可以调用那些参数中有持久化实现类的Remote和Local方法。

lyojbuilder
2003-11-10 16:15
我也遇到了同样的问题,我用的是CMP,按照你的方法,在XXXEntityBean中的ejbCreate应该返回个主健的值,但是EJB2.0规范是返回个NULL阿,则怎麽解决?

还有就是如果我建立一个one-one的单向联系,A-B,那麽在A的表中有个指向B的虚拟字段,这个字段用在表A中加上吗?我用JBoss的key-fields建立映射,如果这个 <key-fields>

<key-field>

<field-name>id</field-name>

<column-name>address_id</column-name>

</key-field>

</key-fields>

写在A中,就报“Column 'id' specified twice ”的错误,放在B中就包这个错误(我的表A中是有这个address_id联系域的,且有相应的abstract方法,那位高手指点一下,这是怎麽回事?

lyojbuilder
2003-11-10 16:53
补充:

数据是可以存入到数据库的,但就是不能用findByPrimaryKey查出来,findByPrimaryKey返回的是远程接口类型,参数是Integer,ejbCreate返回的也是Integer。

//////////////EntityBean/////////////////////////////////

.............................................

public Integer ejbCreate(String homeaddress,String companyaddress)throws RemoteException,CreateException{

this.setHomeaddress(homeaddress);

this.setCompanyaddress(companyaddress);

return null;

}

.....................................................

public void ejbPostCreate(String homeaddress,String companyaddress){}

猜你喜欢
2Go 1 2 下一页