我正在尝试使用全名来访问我的EJB。名称是String
:
private final String ejbJndiLocation = "java:global/" + app
+ ".ear/myApp-ejb.jar/MyEjbModule!com.ejb.service.impl.MyEjbModule";
这是我在WAS上安装已安装的应用程序时的确切名称。但是,当我访问它时:
context = new InitialContext();
MyEjbModule = (MyEjbLocal) context.lookup(ejbJndiLocation);
我得到以下异常:
javax.naming.NameNotFoundException:上下文:MC41367Node01Cell / applications,name:myApp.ear / myApp.ear / myApp-ejb.jar / MyEjbModule!com.ejb.service.impl.MyEjbModule:名称为myApp.ear的第一个组件未找到/myApp.ear/myApp-ejb.jar/MyEjbModule!com.ejb.service.impl.MyEjbModule。 [root例外是org.omg.CosNaming.NamingContextPackage.NotFound:IDL:omg.org/CosNaming/NamingContext/NotFound:1.0] at com.ibm.ws.naming.jndicos.CNContextImpl.mapNotFoundException(CNContextImpl.java:4564) 在com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1822) 在com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1777) 在com.ibm.ws.naming.jndicos.CNContextImpl.lookupExt(CNContextImpl.java:1434) ... 引起:org.omg.CosNaming.NamingContextPackage.NotFound:IDL:omg.org/CosNaming/NamingContext/NotFound:1.0 at com.ibm.ws.naming.ipcos.WsnOptimizedNamingImpl.handleNameNotFound(WsnOptimizedNamingImpl.java:2534) at com.ibm.ws.naming.ipcos.WsnOptimizedNamingImpl.getNextWsnOptimizedNamingContext(WsnOptimizedNamingImpl.java:1277) 在com.ibm.ws.naming.cosbase.WsnOptimizedNamingImplBase $ 3.run(WsnOptimizedNamingImplBase.java:4670) 在com.ibm.ws.naming.cosbase.WsnOptimizedNamingImplBase $ 3.run(WsnOptimizedNamingImplBase.java:4665)
有没有办法找出服务器上的全名?我真的需要用全名访问它。
技术:Java6
,EJB 3.1
,Websphere Server 8.5