各位大大,在Jboss5.0下配置EJB服务,本机上用IP调用远程接口没问题,但是再另一台上调用就出现
javax.naming.CommunicationException [Root exception is java.rmi.NoSuchObjectException: no such object in table]
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:839)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:686)
at javax.naming.InitialContext.lookup(Unknown Source)
at com.crispware.ecp.biz.session.Test.main(Test.java:22)
Caused by: java.rmi.NoSuchObjectException: no such object in table
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:734)
... 3 more
谁能告诉下是什么原因,怎么解决啊,谢谢了

解决方案 »

  1.   

    lookup(Unknown Source) EJB不太熟悉,是不是开了防火墙? 另外提问的时候最好把相关的代码贴下。 最可能出错的那部分代码。
      

  2.   

    谢谢 guodong66 我把代码补全,另外防火墙已经关了的 2台机器操作系统都是XP
    //远程接口
    package com.crispware.ecp.biz.session;import javax.ejb.Remote;@Remote
    public interface BizAccountRemote {
       String add();
    }//实现Bean
    package com.crispware.ecp.biz.session;
    import javax.ejb.Stateless;
    @Stateless
    public class BizAccountBean implements BizAccountRemote,BizAccountLocal,java.io.Serializable  { @Override
    public String add() {
    return  "add success"; }}//调用方法,已经导入jboss client下所有的包
    package com.crispware.ecp.biz.session;import java.util.Properties;import javax.naming.InitialContext;import com.crispware.ecp.fep.beans.HelloRemote;
    public class Test {
    public static void main(String[] arg){
    try{ Properties props = new Properties();  
    props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
            props.setProperty("java.naming.provider.url", "192.168.1.118:1888");
    InitialContext ctx = new InitialContext(props);


    //props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming.org.jnp.interfaces"); BizAccountRemote b = (BizAccountRemote) ctx.lookup("BizAccountBean/remote");
    System.out.print(b.add());
    }catch(Exception e){
    e.printStackTrace();
    }
    }
    }
      

  3.   

    郁闷了2天
    问题找到了,是应为eclipse 启动jboss 的时候使用的是 -b localhost 启动  把localhost改为自己机器上的ip 就好了