在创建时CMP实体的ejb时,在原有的ejbCreate(string custname)的基础上我又添加一个ejbCreate(java.lang.String custname, java.lang.Int

zsq666 2003-10-09 08:36:32
其中,custname是主键,当我用 客户段程序KehuTestClient.java,前后调用两个方法新增记录时出错,其中ejbCreate(java.lang.String custname, java.lang.Integer custage, java.lan)方法新增成功,ejbCreate(java.lang.String custname)而出错,出错如下:


C:\bea\jdk141_03\bin\javaw -classpath "D:\Good\classes;C:\bea\weblogic81\server\lib\weblogic_sp.jar;C:\bea\weblogic81\server\lib\weblogic.jar;C:\bea\weblogic81\server\lib\webservices.jar;D:\JBuilder9\lib\beans\dxejb.jar;D:\JBuilder9\lib\ext\nls_charset12.jar;D:\JBuilder9\lib\ext\classes12.jar;D:\JBuilder9\lib\ext\mm.mysql-2.0.13-bin.jar;C:\bea\jdk141_03\jre\lib\charsets.jar;C:\bea\jdk141_03\jre\lib\ext\dnsns.jar;C:\bea\jdk141_03\jre\lib\ext\ldapsec.jar;C:\bea\jdk141_03\jre\lib\ext\localedata.jar;C:\bea\jdk141_03\jre\lib\ext\sunjce_provider.jar;C:\bea\jdk141_03\jre\lib\im\indicim.jar;C:\bea\jdk141_03\jre\lib\jaws.jar;C:\bea\jdk141_03\jre\lib\jce.jar;C:\bea\jdk141_03\jre\lib\jsse.jar;C:\bea\jdk141_03\jre\lib\rt.jar;C:\bea\jdk141_03\jre\lib\sunrsasign.jar;C:\bea\jdk141_03\lib\dt.jar;C:\bea\jdk141_03\lib\tools.jar;C:\bea\jdk141_03\lib\htmlconverter.jar;C:\bea\jdk141_03\lib\jndi.jar;C:\bea\jdk141_03\lib\classes12.jar;C:\bea\jdk141_03\lib\nls_charset12.jar;C:\bea\jdk141_03\lib\mm.mysql-2.0.13-bin.jar" good.KehuTestClient5
-- Initializing bean access.

-- Succeeded initializing bean access through Home interface.

-- Execution time: 4829 ms.

-- Calling create(wanghx)

javax.ejb.CreateException: [EJB:010148]In EJB 'Kehu', the primary key field 'custname' was not set during ejbCreate. All primary key fields must be initialized during ejbCreate.

at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108)

at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:284)

at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:244)-- Failed: create(wanghx)



at good.Kehu_1q4va6_HomeImpl_811_WLStub.create(Unknown Source)

at good.KehuTestClient5.create(KehuTestClient5.java:111)

at good.KehuTestClient5.main(KehuTestClient5.java:491)

Caused by: javax.ejb.CreateException: [EJB:010148]In EJB 'Kehu', the primary key field 'custname' was not set during ejbCreate. All primary key fields must be initialized during ejbCreate.

at good.Kehu_1q4va6__WebLogic_CMP_RDBMS.pkCheck(Kehu_1q4va6__WebLogic_CMP_RDBMS.java:1903)

at good.Kehu_1q4va6__WebLogic_CMP_RDBMS.ejbCreate(Kehu_1q4va6__WebLogic_CMP_RDBMS.java:1947)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)

at weblogic.ejb20.manager.DBManager.create(DBManager.java:1139)

at weblogic.ejb20.manager.DBManager.remoteCreate(DBManager.java:1109)

at weblogic.ejb20.internal.EntityEJBHome.create(EntityEJBHome.java:247)

at good.Kehu_1q4va6_HomeImpl.create(Kehu_1q4va6_HomeImpl.java:96)

at good.Kehu_1q4va6_HomeImpl_WLSkel.invoke(Unknown Source)

at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:466)

at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:108)

at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:409)

at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:353)

at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144)

at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:404)

at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)

at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)

at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

-- Return value from create(wanghx): null.

...全文
61 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mr_wn 2003-10-10
  • 打赏
  • 举报
回复
可能你只是建立了ejbcreate方法,而没有实现,写完整ejbcreate
ejbCreate(java.lang.String custname)
{
setCustname(custname);
...........
}
zsq666 2003-10-10
  • 打赏
  • 举报
回复
peopleking(蓝色幻想)
您好
怎样设置其他两个字段可以为空??
谢谢!
88888888csdn 2003-10-10
  • 打赏
  • 举报
回复
你的问题也许出在这里:
新增函数后得增加一个对应的ejbPostCreate()函数。
peopleking 2003-10-09
  • 打赏
  • 举报
回复
其他两个字段是不是不允许为空,如果是,那必须在CREATE中做参数
zsq666 2003-10-09
  • 打赏
  • 举报
回复
up急等!

67,513

社区成员

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

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