是不是你没转换呀,应该是这样吧:
Context cx = new InitialContext();
SysRoleHome srh =
(SysRoleHome)javax.rmi.PortableRemoteObject.narrow(cx.lookup("SysRole"), SysRoleHome.class);
Context cx = new InitialContext();
SysRoleHome srh =
(SysRoleHome)javax.rmi.PortableRemoteObject.narrow(cx.lookup("SysRole"), SysRoleHome.class);
env.setInitialContextFactory(weblogic.jndi.Environment.DEFAULT_INITIAL_CONTEXT_FACTORY);
env.setProviderURL(“t3://bross:4441”);
Hashtable props = env.getProperties();
InitialContext ctx = new InitialContext(props);
不是本地接口这样调用就可以吗?
Context cx = new InitialContext();
SysRoleHome srh = (SysRoleHome)cx.lookup("SysRole");
主要你用的什么服务器???然后用对应的参数 !!!
这是weblogic的 :
Context.INITIAL_CONTEXT_FACTORY
"weblogic.jndi.WLInitialContextFactory "
Context.PROVIDER_URL
"t3://127.0.0.1:7001 " //地址啦,本机就不用改了,要是远程,就要写对应的ip ------------------------------------------------------
我们还年轻牛奶会有的奶牛也会有的
可天天在 csdn 混这些会有吗 ??
测试Local接口建议你用JunitEjb
ht = new Hashtable();
ht.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL, "t3://127.0.0.1:7001 ");
Context cx = new InitialContext(ht);
SysRoleHome srh = (SysRoleHome) PortableRemoteObject.narrow(cx.lookup("SysRole"), SysRoleHome.class);
出现下面的问题,好郁闷……
javax.naming.LinkException: . Root exception is javax.naming.NameNotFoundException: remaining name: /app/ejb/demo.jar#SysRole/local-home
at weblogic.j2eeclient.SimpleContext.resolve(SimpleContext.java:35)
at weblogic.j2eeclient.SimpleContext.resolve(SimpleContext.java:39)
at weblogic.j2eeclient.SimpleContext.lookup(SimpleContext.java:57)
at weblogic.j2eeclient.SimpleContext.lookup(SimpleContext.java:62)
at weblogic.jndi.factories.java.ReadOnlyContextWrapper.lookup(ReadOnlyContextWrapper.java:45)
at weblogic.jndi.internal.AbstractURLContext.lookup(AbstractURLContext.java:124)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at weblogic.jndi.internal.WLNamingManager.getObjectInstance(WLNamingManager.java:96)
at weblogic.jndi.internal.ServerNamingNode.resolveObject(ServerNamingNode.java:277)
at weblogic.jndi.internal.BasicNamingNode.resolveObject(BasicNamingNode.java:743)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:191)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:196)
at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:196)
at weblogic.jndi.internal.RootNamingNode_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:407)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:108)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:356)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:353)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:123)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:351)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:178)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:151)
我重写了个EJB,Servlet然后打包进ear包中,发布运行就好了
我在用JBUILDER的时候,我写了一个entitybean,编译并且发布,如果我在此BEAN中加个sessionbean编译的时候就出错,这是为什么?
还有,如果我写的SERVLET和EJB不在同一个PROJECT中,SERLET中要调用的EJB包怎么能找到?
谢谢朋友们