LR测试EJB问题解决(一)
持续增加中,具体能增加多少,未知!!
环境:Weblogic 816,Weblogic自带的例子,LR8.0的EJBDetector
背景:按照之前的介绍完全部署了例子,并且已经部署好了EJBDetector。用LR录制脚本,取得了EJB,但是回放的时候报错。
错误信息如下:
irtual User Script started
Starting action vuser_init.
Error: System.err: javax.naming.NameNotFoundException: Unable to resolve 'statelessSession' Resolved [Root exception is javax.naming.NameNotFoundException: Unable to resolve 'statelessSession' Resolved ]; remaining name 'statelessSession' Error
System.err: at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108) Error
System.err: at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:290) Error
System.err: at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:248) Error
System.err: at weblogic.jndi.internal.ServerNamingNode_815_WLStub.lookup(Unknown Source) Error
System.err: at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:375) Error
System.err: at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:363) Error
System.err: at javax.naming.InitialContext.lookup(InitialContext.java:347) Error
System.err: at Actions.init(Actions.java:29) Error
Error: System.err: Caused by: javax.naming.NameNotFoundException: Unable to resolve 'statelessSession' Resolved Error
Error: System.err: at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:924) Error
System.err: at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:230) Error
System.err: at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:154) Error
System.err: at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:188) Error
System.err: at weblogic.jndi.internal.RootNamingNode_WLSkel.invoke(Unknown Source) Error
System.err: at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:492) Error
System.err: at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:108) Error
System.err: at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:435) Error
System.err: at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363) Error
System.err: at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147) Error
System.err: at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:430) Error
System.err: at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:35) Error
System.err: at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224) Error
System.err: at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183) Error
System.err: at java.lang.Thread.startThreadFromVM(Unknown Source) Error
Notify: Transaction "create" started.
Notify: Transaction "create" ended with "Fail" status (Duration: 0.0023).
Error: System.err: java.lang.NullPointerException Error
System.err: at Actions.init(Actions.java:39) Error
Ending action vuser_init.
Running Vuser...
Starting iteration 1.
Starting action Actions.
Notify: Transaction "buy" started.
Notify: Transaction "buy" ended with "Fail" status (Duration: 0.0015).
Error: System.err: java.lang.NullPointerException Error
System.err: at Actions.action(Actions.java:56) Error
Notify: Transaction "sell" started.
Notify: Transaction "sell" ended with "Fail" status (Duration: 0.0002).
Error: System.err: java.lang.NullPointerException Error
System.err: at Actions.action(Actions.java:66) Error
Ending action Actions.
Ending iteration 1.
Ending Vuser...
Starting action vuser_end.
Ending action vuser_end.
Vuser Terminated.
分析:
无法找到EJB,可能是JNDI-Name有问题。
原因:
以我目前的水平我只能找到原因,还不能根本解决。
在LR通过EJBDetecotr获取EJB信息时,获取的是EJB-Name,而不是JNDI-Name,你可以到部署的环境里面找到weblogic-ejb-jar.xml文件,看里面的JNDI-Name是什么,然后拷贝出来,放在LR脚本的LookUp(“JNDI名字”)代码中,然后就可以了。
只是解决办法,治标不治本,回头有空找一下根本的解决办法。
RelatedEntries:
TD或者QC的字段扩展 - 03 21, 2006
MI公司QC的SP认证考试 - 12 27, 2005
QC的权限问题 - 12 19, 2005
QC的问题定位及解决(二) - 11 18, 2005
QC错误定位和解决 - 10 31, 2005