或者在0.3上试试
 LocateRegistry.getRegistry("192.168.0.1", 1099).rebind("HelloServer",obj);

解决方案 »

  1.   

    A remote object registry is a bootstrap naming service that is used by RMI servers on the same host to bind remote objects to names. Clients on local and remote hosts can then look up remote objects and make remote method invocations. The registry is typically used to locate the first remote object on which an application needs to invoke methods. That object in turn will provide application-specific support for finding other objects. The methods of the java.rmi.registry.LocateRegistry class are used to get a registry operating on the local host or local host and port. The URL-based methods of the java.rmi.Naming class operate on a registry and can be used to look up a remote object on any host, and on the local host: bind a simple (string) name to a remote object, rebind a new name to a remote object (overriding the old binding), unbind a remote object, and list the URLs bound in the registry.
    这个是我从API文档上摘下来的,是rmiregistry的介绍
    好像rmiregistry不能接受远程机器的绑定。
    我试过你上面的方法,不行,而且那个只能得到本机上的注册表操作。
      

  2.   

    我觉得代码没有问题,关键是怎样让rmiregistry可以接受从另一台机器上调用的rebind命令
      

  3.   

    忘了说了,如果注册表运行在3上是没有问题的,因为注册程序和注册表就在一台机器上了,问题就是我希望注册表运行在一台单独的机器上,我想是不行了,因为即便是我要注册表运行在一台单独的主机上,我也需要把所有的remote object类加到它的classpath下面去。这样岂不是更麻烦了,可是如果没有一个像DNS那样的主机,每台运行了远程对象的机器都要启动本地的注册表,那不是更麻烦,干脆把这技术废了吧
      

  4.   

    rebind函数第一个参数URL
    //host:port/name  where host is the host (remote or local)where the registry is located因此应该支持remote host,你的代码应该也没问题, 我现在只有1台机器,没环境试
      

  5.   

    今天试了试,的确有同样的问题
    后来查了查, 看到这段:
    rebind:exception AccessException if this operation is not permitted (if originating from a non-local host, for example)
      

  6.   

    RMI 不是有个  ClassServer 么就是解决类加载问题的,不过我怎么也找不到那个  HttpServer 的下载地址,有了他就不用把 类 都拷贝, 所有服务端客户端都到一个地方去取,也不存在版本问题。
      

  7.   

    VMWARE不知道你们听说过没有,可以虚拟多个操作系统,而且就象你有个真正的网络一样,我用的就是这个。你刚才说的那个HttpServer是一个简单的WEB服务器。那种方法我已经做过试验了。不过我用的是另外一种服务器,但是只要是服务器就可以了。其实我最不明白的就是rebind:exception AccessException if this operation is not permitted (if originating from a non-local host, for example),我想肯定是注册表的问题,我看sun的网站上好像还有一个rmi的注册表。不过我已经打算先放一放这个问题了。还有如果你用的是linux的话可以在自己的住文件夹下建一个public_html的文件夹,吧类放到这里,就可以通过url来访问下载了,我只是看书上这么说过没有试过
      

  8.   

    VM 经常用,不过是虚拟了unix和linux在上面.在家时只有1台机器加1个固定ip, 有些限制的那段异常说明是看rebind源码时看到的, 如果只能localhost, 那要参数里url做什么.
    有时间再仔细看看, 楼主有啥心得到时也共享一下.
      

  9.   

    难道上面的  渔王 连一块独立的网卡都没有(只有 ADSL )? 难道你搞J2EE 还有 Win98/WinMe ? 如果以上都不是, 你就可以为你的 网卡 添加多个  IP .  Win2000/XP 配置太简单了。
      

  10.   

    你安装上VMWARE后会自动多出两块虚拟网卡,当然WIN2000下和XP下还可以安装MS公司提供的虚拟网卡(为做试验用的),心得吗?谈不上,不过我已经开始看后面的JNDI了,在这里倒是又用到了RMI,他们好像是将注册表的访问地址存到目录服务器上,然后每个远程对象都在本地注册。我想这可能是SUN公司提供的RMI服务器比较简单只为一台机器试验用的吧。我也是猜想。我正在整理J2EE高级服务器那本书上的例子。相信等整理好了,我会发到网上来得。我也想做自己的论坛。现在论坛系统已经基本上写好了。用的是jsp+javabean+mysql。希望大家到时能一起来打理
      

  11.   

    要加一个URL是为了提高代码的通用性。如果硬编码,如果我换了IP那不就还要编译一下吗?我这人比较懒。哈哈
      

  12.   

    这是由于rmi注册中的安全限制,他只允许同一计算机的客户向他绑定,如果非得实现你所说的,那你做一个远程注册程序吧,不过你这个注册程序最终还是得把类传过去在本机注册,如果不满意,那拆开java实现看看吧。
      

  13.   

    可是书上说的是可以远程注册的,难道这只是个幌子吗?SUN会欺骗我!这让我很伤心呀