我在Tomcat上运行的Java EE应用程序需要连接到在JBoss上运行的另一个Java EE应用程序(主机系统),该应用程序使用套接字接受客户端连接。
连接到此系统以发送和接收消息的最佳方法是什么?
我目前正在使用套接字向Java EE应用程序(主机系统)发送和接收消息。但我在Java EE规范中发现在Java EE应用程序中使用套接字是一种不好的做法。由于主机系统通过特定端口上的套接字侦听客户端,如何从我的Java Web应用程序连接到此系统?
答案 0 :(得分:1)
如果没有关于如何与主机系统通信的更多细节,我只是假设它使用专有的,基于套接字的二进制协议,并且纯粹是客户端 - 服务器(即,不是全双工,你需要一个监听器客户方)。
在我的头脑中,我可以想到几个选项:
使用原始套接字。请确保不要让它们长时间打开并正确关闭它们。这听起来好像主机系统本身没有遵循Java EE建议 - 所以你为什么要这样做?
编写JCA resource adapter。 Java EE“首选”处理自定义/遗留资源或消息传递的方式。从本质上讲,这会将主机系统转换为可通过Common Client Interface访问的资源,并让容器管理套接字/线程的生命周期。
然而,为了简单而不是过度工程,我说如果原始套接字适合你,那么只需使用它们直到被迫使用。
除非你看到通过JCA提供定制服务的价值,否则很难证明这一努力是合理的。
您甚至可以使用ESB平台在一端公开Web服务,并通过另一端的套接字与服务器通信 - 但对我而言,这更加“偶然”复杂。
答案 1 :(得分:0)
这听起来像是要使用Java Message Service(JMS)。