没有看明白什么意思。你客户端得到rmi stub时使用的域名还是IP,当然一般是使用域名,这样IP发生改变了也无所谓。你现在的问题是不是说外网的client无法访问到内网(NAT后面)的Server,这个是可以直接在路由上面增加一个映射就可以解决了,如Client访问的是myserver:8000,那么直接修改C:\WINDOWS\system32\drivers\etc\hosts文件将myserver指想你的路由地址,然后在路由上添加映射8080端口转发到如192.168.3.222的7000端口就可以了,当然如果myserver可以直接使用DNS服务器解析那么便不用修改hosts文件了,修改文件的目的最主要是在发布和测试分开,因为测试时该域名肯定是指向自己的测试服务器

解决方案 »

  1.   

    感谢伤桥回的解决方案,现在我主要是在服务器端没法发布服务。因为服务器同时是一个tomcat的网站的,网址为:www.test.com 端口为:80 。rmi程序的服务器现在应该发布到:www.test.com:2005上还是应该发布到路由器外网对应的ip上 或者发布到自己内网的ip上?我现在是将rmi服务发布到www.test.com:2005上了,请问一下:Naming.rebind(rmi://www.test.com:2005/ServerCheck, application);
    但是出异常。我是应该将服务发布到本地ip上吗?
      

  2.   

    需求:
    1. 需要实现c/s模式的框架。客户端是用安装盘将已经写好的java程序安装上。
    2. 客户端需要将客户信息和一些验证信息发送到服务器端,调用服务器的方法进行验证。
        实现:
          客户端初始化界面为login界面。使用java swing做成的。点击login之后会将一些验证信息封装到java bean 中。然后调用服务器端的方法。服务器端是用rmi 实现的,只是一个简单的rmi服务器,实现对特定端口的监听,如有请求,就进行验证,将验证结果返回。   问题:
       这种实现方法可行吗?如不行,有什么其他的方法可用?
      

  3.   

    可以发布在内网,如内网IP:192.168.3.23,你的NAT地址是211.92.5.3,你将的tomcat和rmi全部放在内网中,然后在NAT上配置NAT的80指向192.168.3.23的8080端口(tomcat),NAT的2005指向192.168.3.23的2005端口,那么现在你在外网便直接可以使用211.92.5.3:8080,211.92.5.3:2005访问到你内网中的服务了