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

到OpenShift上Java程序的RMI或套接字连接,java,sockets,websocket,rmi,openshift,Java,Sockets,Websocket,Rmi,Openshift,我有以下简单的场景: 我已经在OpenShift上创建了一个JBossAS7应用程序。我有一个index.jsp,每次加载Java类时都会调用它。这个Java类收集一些数据并将其保存为字符串。我现在要做的是获取该字符串中包含的文本,但不要将其显示在页面上 我需要的是一种类似RMI或套接字的机制,我可以使用客户端程序连接并简单地接收字符串。不幸的是,OpenShift会阻塞所有端口,我不能使用RMI或套接字绑定到任何东西(我总是被拒绝权限) 有办法解决这个问题吗? 谢谢 我想说,公开数据的最佳方式

我有以下简单的场景:

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

我需要的是一种类似RMI或套接字的机制,我可以使用客户端程序连接并简单地接收字符串。不幸的是,OpenShift会阻塞所有端口,我不能使用RMI或套接字绑定到任何东西(我总是被拒绝权限)

有办法解决这个问题吗?
谢谢

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


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

我解决这一问题的方法相当简单,但在论坛或留言板上的解释和记录却很差

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

一旦程序在OpenShift上启动并且端口绑定到正确的IP地址,用户必须转发端口才能连接到它。这可以从eclipse或使用RHC工具来完成。OpenShift上的端口转发意味着OpenShift服务器上的绑定端口将映射到用户本地主机上的同一端口。编写客户端程序时,用户必须连接到
localhost:PORT
,而不是\u OPENSHIFT\u服务器:PORT的
IP\u地址。这件事我花了一段时间才明白。一旦一切正常,客户端程序就可以正常运行了