互联网上的Java“hello world”(RMI,RMI-IIOP,EJB)

时间:2015-05-26 09:33:39

标签: java ejb rmi

好的,我的斗智结束了。我需要编写一个服务器和客户端,可以在连接到互联网的不同机器上运行(而不是在同一个网络/路由器上)。我已经尝试过RMI,RMI-IIOP,EJB / GlassFish,CORBA以及我做的任何工作(通过互联网)。我必须遵循30个教程,示例和指南,但它们都设计为在单个计算机上运行,​​在尝试从另一台计算机远程连接时无效。

我想要的只是一个“hello world”类型示例,其中服务器从计算机1启动/部署,客户端在计算机2上运行,并且它们可以通过互联网交换简单的对象和变量。所以我可以解构它并“看到”我做错了什么。

拜托,请有人指点我指导教程或只是通过互联网进行专门沟通的代码。

我一直都在使用Oracle,netbeans,coderanch,stackoverflow,但没有找到任何帮助。

我在Windows 7(两台计算机)上使用NetBeans 8.0.2和GlassFish 4.1

编辑 - 澄清问题。

我编写了一个与Teamviewer类似的程序,在那里我可以监视同一网络上多台计算机的屏幕,如果需要,可以与这些计算机进行交互。我的软件基本上抓取屏幕截图并将它们作为字节数组传输,并发送包含屏幕,系统,鼠标和键盘信息的各种简单数据对象。这适用于RMI但我想扩展它以便能够支持不在同一网络上的计算机,所以通过互联网。我在这里读过RMI不合适,我的测试证实了这一点。所以我的下一个逻辑步骤是EJB或RMI-IIOP,但我根本无法通过网络让这些工作,更不用说通过互联网了。所以我真的在这里要求帮助,以了解我做错了什么,因此在互联网请求上的“你好世界”。我对这方面的经验很少,每个例子都是本地的,所以我需要弥合从本地到互联网的差距。我认为我误解的部分原因是我认为Glassfish将我的服务器实验暴露给互联网而不仅仅是本地。正如你所看到的,我的知识存在一些差距,我希望你能帮我填补。

1 个答案:

答案 0 :(得分:0)

我建议使用RESTful Web服务(使用JSON)。您可以使用GlassFish和NetBeans在几分钟内设置一个(例如:http://java.dzone.com/news/simple-restful-web-services)。由于REST在HTTP上运行,因此它是防火墙透明的。您也可以使用浏览器轻松测试它。

此外,请确保您可以从客户端访问服务器计算机。路由问题可能是这里的问题。请记住,您无法轻松呼叫没有公共IP地址的服务器。

<强>更新

不幸的是,我的声誉太低而无法根据您的问题发表评论,所以在此尝试。我认为您的问题在于计算机网络领域而不是您正在尝试的任何Java技术。我们假设您正在PC上运行服务器,并要求朋友从他/她的PC上调用此服务器上的服务。很可能它不可能,因为你们都在NAT之后,无法看到对方的IP地址。有些技术可以帮助解决这个问题,但所有这些技术都需要第三方服务。可通过Internet直接访问的每个服务器都有一个公共IP地址,但这些都需要花钱并需要一些额外的网络配置。如果这不是问题,请确保服务器的IP可从客户端路由。尝试ping IP以开始。另一个问题可能是防火墙。确保没有任何东西阻止您选择的技术使用的端口和协议。据我所知,您提到的技术不应该用于公共网络。这就是我建议REST的原因 - 它可以帮助您排除网络问题并测试客户端和服务器之间的基本连接。