我有一个本地工作的JAVA RMI应用程序(服务器和客户端)。我已经使用Eclipse &一个插件(Genady)来编写和运行这些应用程序。
在我的项目中有三个部分: 1.服务器2.接口(客户端和服务器通用) 3.客户端
使用Eclipse(+plugin)的本地部署可以完美地工作。客户端使用公共接口(添加到“构建路径”)与服务器(在eclipse中,服务器也将公共接口添加到其构建路径)进行通信(n到n)。
现在,我计划在两台不同的电脑上测试相同的系统,这两台电脑都有互联网连接。我现在该干啥?我是否应该在一台计算机(服务器)上安装Apache并将Server+Interface文件(类文件)放到web可访问的目录中?然后从另一台计算机(客户端)运行客户端文件(同时具有客户端和接口类文件)?
有人能帮我配置一下吗?我的意思是,一步一步地指导我应该做些什么才能让远程部署正常工作?
是否强制使用Apache(或任何web服务器应用程序)??有没有其他方法可以让我的应用程序在不使用web服务器的情况下工作(我的意思是,像直接连接之类的?)?
(我觉得我已经给出了所有需要的信息。但如果需要更多信息,请询问。)
这是我最后一年的项目&我的最终演示很快就会出来!谢谢你,提前!
发布于 2012-06-22 13:25:27
我不知道Genady做什么,因为我很少使用Eclipse。无论如何,开发RMI应用程序是非常容易的。
打包服务器代码并在远程机器上运行它(RMI中的R)(也称为服务器主机),它应该向注册表注册自己,注册表默认使用端口1099,但您可以在任何您喜欢的端口上创建注册表:
MyRemoteInterface stub = (MyRemoteInterface) UnicastRemoteObject.exportObject(server, 0); //I don't know if this is needed anymore, or you could make the "server" extend UnicastRemoteObject
int thePortUsedInTheServer = 1099; //default
Registry registry = Registry.createRegistry(thePortUsedInTheServer);
registry.rebind("Server", stub));打包客户端代码并在客户端(RMI中的M+I )上运行它,它应该在远程机器(host+port)中找到注册表:
String host = ...; //the host where the server is
int port = ...; //the port used in the server
Registry registry = LocateRegistry.getRegistry(host, port);
MyRemoteInterface stub = (MyRemoteInterface)registry.lookup("Server");
stub.myRemoteMethod(); //call your remote methodsjavadoc应该能帮你解决这个问题。不需要任何其他东西,不需要Apache等。注意恶意的反病毒软件、防火墙等。在你掌握了要点之后,这些才是唯一真正的问题。
https://stackoverflow.com/questions/10459057
复制相似问题