OpenShift上与Java程序的RMI或套接字连接

时间:2014-05-14 15:22:09

标签: java sockets websocket rmi openshift

我有以下简单方案:

我在OpenShift上创建了一个JBossAS7应用程序。我有一个index.jsp,每次加载时都会调用Java类。此Java类收集一些数据并将其保存为字符串。我现在要做的是获取该字符串中包含的文本,但不要在页面上显示它。

我需要的是像RMI或套接字这样的机制,我可以连接到它,并使用客户端程序简单地接收String。不幸的是,OpenShift阻止了所有端口,我无法使用RMI或套接字绑定任何东西(我总是被许可拒绝)。

有没有办法解决这个问题? 谢谢!

2 个答案:

答案 0 :(得分:2)

我想说,通过servlet公开数据的最佳方式,或者创建一个宁静的API并允许访问它,可能带有一些身份验证或安全令牌。

另一种想法是使用ironmq(iron.io)并将数据发送到可以从另一个应用程序处理的队列中。

答案 1 :(得分:1)

我解决这个问题的方式相当简单,但在论坛或留言板上解释得很差并且记录在案。

OpenShift仅允许用户绑定15000和35530之间的端口。但是,执行此操作时,用户还必须指定主机的IP地址,否则将使用localhost,这在OpenShift上是不允许的。服务器的地址位于环境变量OPENSHIFT_JBOSSAS_IP下(我使用的是JBoss AS 7.1,根据使用的技术,变量可能有不同的名称)。我通过SSH登录我的应用程序并运行env命令,发现了这一点。

一旦程序在OpenShift上启动并且端口绑定到正确的IP地址,用户必须转发端口才能连接到该端口。这可以通过eclipse或使用RHC工具完成。 OpenShift上的端口转发意味着OpenShift服务器上的绑定端口将映射到用户的localhost上的同一端口。编写客户端程序时,用户必须连接到localhost:PORT而不是IP_ADDRESS_OF_OPENSHIFT_SERVER:PORT。这需要一段时间让我理解。一旦我把一切都弄好了,客户端程序就没有问题了。