是不是你没转换呀,应该是这样吧:
 Context cx = new InitialContext();
SysRoleHome srh = 
(SysRoleHome)javax.rmi.PortableRemoteObject.narrow(cx.lookup("SysRole"), SysRoleHome.class);

解决方案 »

  1.   

    你没有设InitialContext是由哪儿提供的,比如在weblogic下你就要这样调用:weblogic.jndi.Environment env = new weblogic.jndi.Environment();
    env.setInitialContextFactory(weblogic.jndi.Environment.DEFAULT_INITIAL_CONTEXT_FACTORY); 
    env.setProviderURL(“t3://bross:4441”);
    Hashtable props = env.getProperties();
    InitialContext ctx = new InitialContext(props);
      

  2.   

    谢谢楼上的两位,如果我的EJB实现的是REMOTE接口,用JBUILDER9的new->enterprise->ejb test client就可以生成一个测试类,并且可以正常运行,可是如果我的EJB实现的是LOCAL接口,用JBUILDER9的new->enterprise->ejb test client生成测试类的时候就出现找不到EJB的错误,然后我自己写了个test类,就出现了上面我提到的错误,这是为什么呢,我照上面两位的建议试了一下,还是不对,这是为什么呢?
    不是本地接口这样调用就可以吗?
    Context cx = new InitialContext();
    SysRoleHome srh = (SysRoleHome)cx.lookup("SysRole");
      

  3.   

    wdydt163() 说的差不多了...
    主要你用的什么服务器???然后用对应的参数 !!!
    这是weblogic的 :
    Context.INITIAL_CONTEXT_FACTORY  
       "weblogic.jndi.WLInitialContextFactory  "  
    Context.PROVIDER_URL  
       "t3://127.0.0.1:7001  "      //地址啦,本机就不用改了,要是远程,就要写对应的ip ------------------------------------------------------
               我们还年轻牛奶会有的奶牛也会有的 
                 可天天在 csdn 混这些会有吗 ??
      

  4.   

    Local接口是要在容器中调用的,普通的Test类是找不到的,如果你用JBoss的话就可以
    测试Local接口建议你用JunitEjb
      

  5.   

    我用的是weblogic服务器,我这样写
    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)
      

  6.   

    我是女孩子,每天都在J2EE的痛苦中…………………………………………
      

  7.   

    你的那个测试是一个Application吗?也就是说不是在Weblogic上?
      

  8.   

    不在应用上为什么就不行呢?
    我重写了个EJB,Servlet然后打包进ear包中,发布运行就好了
    我在用JBUILDER的时候,我写了一个entitybean,编译并且发布,如果我在此BEAN中加个sessionbean编译的时候就出错,这是为什么?
    还有,如果我写的SERVLET和EJB不在同一个PROJECT中,SERLET中要调用的EJB包怎么能找到?
    谢谢朋友们