把/local改成/remote,如果你觉得ILocal不是太好看,可以改成IRemote.

解决方案 »

  1.   

    没有人回答我, :-(那就采用 Object getRemoteInterface(String jndi, Class remoteClass)来做;这样就是返回后还是要做一下casting。
      

  2.   

    我在EntityManager的接口定义中找到了解决办法,也就是说定义一个generic方法。
    定义如下:
    public <T> T getRemote(String jdni, Class<T> remoteInterface)
    {
      try
      {
          javax.naming.InitialContext initialContext = new javax.naming.InitialContext();
          try {
    Object ref = initialContext.lookup(jdni+"/remote");
    return (T)(javax.rmi.PortableRemoteObject.narrow(ref, remoteInterface));
          }
          finally {
    initialContext.close();
          }
       }
       catch (javax.naming.NamingException ex) {
          return null;
       }
       return null;
    }