首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java RMI -远程部署

Java RMI -远程部署
EN

Stack Overflow用户
提问于 2012-05-05 13:12:04
回答 1查看 1.3K关注 0票数 0

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

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

使用Eclipse(+plugin)的本地部署可以完美地工作。客户端使用公共接口(添加到“构建路径”)与服务器(在eclipse中,服务器也将公共接口添加到其构建路径)进行通信(n到n)。

现在,我计划在两台不同的电脑上测试相同的系统,这两台电脑都有互联网连接。我现在该干啥?我是否应该在一台计算机(服务器)上安装Apache并将Server+Interface文件(类文件)放到web可访问的目录中?然后从另一台计算机(客户端)运行客户端文件(同时具有客户端和接口类文件)?

有人能帮我配置一下吗?我的意思是,一步一步地指导我应该做些什么才能让远程部署正常工作?

是否强制使用Apache(或任何web服务器应用程序)??有没有其他方法可以让我的应用程序在不使用web服务器的情况下工作(我的意思是,像直接连接之类的?)?

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

这是我最后一年的项目&我的最终演示很快就会出来!谢谢你,提前!

EN

回答 1

Stack Overflow用户

发布于 2012-06-22 13:25:27

我不知道Genady做什么,因为我很少使用Eclipse。无论如何,开发RMI应用程序是非常容易的。

打包服务器代码并在远程机器上运行它(RMI中的R)(也称为服务器主机),它应该向注册表注册自己,注册表默认使用端口1099,但您可以在任何您喜欢的端口上创建注册表:

代码语言:javascript
复制
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)中找到注册表:

代码语言:javascript
复制
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等。注意恶意的反病毒软件、防火墙等。在你掌握了要点之后,这些才是唯一真正的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10459057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档