0

我有一个本地工作的 JAVA RMI 应用程序(服务器和客户端)。我使用 Eclipse 和一个插件(Genady)来编写和运行这些应用程序。

我的项目分为三个部分: 1. 服务器 2. 接口(客户端和服务器通用) 3. 客户端

本地部署,使用 Eclipse(+plugin),完美运行。客户端使用公共接口(添加到“构建路径”)与服务器(在 eclipse 中的构建路径中添加公共接口)进行通信(来回)。

现在,我计划在两台不同的计算机上测试同一个系统,它们都具有 Internet 连接。现在我该怎么做?我应该在一台计算机(服务器)上安装 Apache 并将服务器 + 接口文件(类文件)放入 Web 可访问目录吗?& 然后从另一台计算机(客户端)运行客户端文件(同时具有客户端和接口类文件)?

有人可以帮我配置吗?我的意思是,关于我应该做什么才能使远程部署正常工作的分步指南?

是否必须使用 Apache(或任何 Web 服务器应用程序)?我的应用程序在不使用 Web 服务器的情况下工作的任何其他替代方案(我的意思是,像直接连接或其他什么?)?

(我觉得我已经提供了所有需要的信息。但如果需要更多信息,请询问。)

这是我最后一年的项目,我的最后一个演示即将推出!先感谢您!

4

1 回答 1

0

我不知道 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)上运行它,它应该在远程机器(主机+端口)中找到注册表:

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 methods

javadoc 应该可以帮助您。不需要其他任何东西,不需要 Apache 等。注意攻击性的防病毒软件、防火墙等。在您了解要点之后,这些是唯一真正的问题。

于 2012-06-22T05:25:27.150 回答