紧急求助!!!!
本人现设计了一套系统。因为系统需求为客户端用swing开发。需要与服务器端进行交互。有服务器端执行用户身份验证等一些操作。因为程序为c/s模式,现在服务器端采用rmi框架(顺便问一句:rmi可以在internet上使用吧!)。
因为服务器所在的网络中对外网的ip是一个路由器。内网是一个自己配制的dns服务器。现在程序在内网可以使用,一切正常,但是在外网发布就有问题,因为现在rmi只能在dns服务器上运行,所以绑定的程序只能在本地服务器上发布。无法在对外网的服务器(路由器上)上发布。
如果这套方案不可行。请高手指条明路?
问题点数:20、回复次数:5Top
1 楼shangqiao(伤桥(千万不要理解为我可怜桥,是“伤心桥下”的缩写))回复于 2006-07-02 16:03:05 得分 20
没有看明白什么意思。你客户端得到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文件了,修改文件的目的最主要是在发布和测试分开,因为测试时该域名肯定是指向自己的测试服务器Top
2 楼ajohnsun(ilovejahtooee)回复于 2006-07-02 17:27:14 得分 0
感谢伤桥回的解决方案,现在我主要是在服务器端没法发布服务。因为服务器同时是一个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上吗?Top
3 楼ajohnsun(ilovejahtooee)回复于 2006-07-02 17:37:33 得分 0
因为本人以前没有接触过路由器,对路由器的的工作原理不是很了解。
请各位赐教!Top
4 楼ajohnsun(ilovejahtooee)回复于 2006-07-03 09:42:34 得分 0
需求:
1. 需要实现c/s模式的框架。客户端是用安装盘将已经写好的java程序安装上。
2. 客户端需要将客户信息和一些验证信息发送到服务器端,调用服务器的方法进行验证。
实现:
客户端初始化界面为login界面。使用java swing做成的。点击login之后会将一些验证信息封装到java bean 中。然后调用服务器端的方法。服务器端是用rmi 实现的,只是一个简单的rmi服务器,实现对特定端口的监听,如有请求,就进行验证,将验证结果返回。
问题:
这种实现方法可行吗?如不行,有什么其他的方法可用?
Top
5 楼shangqiao(伤桥(千万不要理解为我可怜桥,是“伤心桥下”的缩写))回复于 2006-07-04 16:10:10 得分 0
可以发布在内网,如内网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访问到你内网中的服务了Top




