连接到接受套接字连接的Java EE应用程序

时间:2011-08-03 09:17:10

标签: java sockets java-ee

我在Tomcat上运行的Java EE应用程序需要连接到在JBoss上运行的另一个Java EE应用程序(主机系统),该应用程序使用套接字接受客户端连接。

连接到此系统以发送和接收消息的最佳方法是什么?

我目前正在使用套接字向Java EE应用程序(主机系统)发送和接收消息。但我在Java EE规范中发现在Java EE应用程序中使用套接字是一种不好的做法。由于主机系统通过特定端口上的套接字侦听客户端,如何从我的Java Web应用程序连接到此系统?

2 个答案:

答案 0 :(得分:1)

如果没有关于如何与主机系统通信的更多细节,我只是假设它使用专有的,基于套接字的二进制协议,并且纯粹是客户端 - 服务器(即,不是全双工,你需要一个监听器客户方)。

在我的头脑中,我可以想到几个选项:

  1. 使用原始套接字。请确保不要让它们长时间打开并正确关闭它们。这听起来好像主机系统本身没有遵循Java EE建议 - 所以你为什么要这样做?

  2. 编写JCA resource adapter Java EE“首选”处理自定义/遗留资源或消息传递的方式。从本质上讲,这会将主机系统转换为可通过Common Client Interface访问的资源,并让容器管理套接字/线程的生命周期。

  3. 然而,为了简单而不是过度工程,我说如果原始套接字适合你,那么只需使用它们直到被迫使用。

    除非你看到通过JCA提供定制服务的价值,否则很难证明这一努力是合理的。

    您甚至可以使用ESB平台在一端公开Web服务,并通过另一端的套接字与服务器通信 - 但对我而言,这更加“偶然”复杂。

答案 1 :(得分:0)

这听起来像是要使用Java Message Service(JMS)。