Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
连接到接受套接字连接的Java EE应用程序_Java_Sockets_Jakarta Ee - Fatal编程技术网

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

连接到接受套接字连接的Java EE应用程序,java,sockets,jakarta-ee,Java,Sockets,Jakarta Ee,我有一个运行在Tomcat上的JavaEE应用程序,它需要连接到另一个运行在JBoss上的JavaEE应用程序(主机系统),JBoss使用套接字接受客户端连接 连接到此系统以发送和接收消息的最佳方式是什么 我目前正在使用套接字向JavaEE应用程序(主机系统)发送和接收消息。但我在JavaEE规范中发现,在JavaEE应用程序中使用套接字是一种糟糕的做法。由于主机系统正在通过特定端口上的套接字侦听客户端,如何从java web应用程序连接到此系统?这听起来像是要使用java消息服务(JMS) 没

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

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


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

这听起来像是要使用java消息服务(JMS)

没有更多关于如何与主机系统通信的细节,我只是假设它使用专有的、基于套接字的二进制协议,并且是纯客户端服务器(即,在客户端需要侦听器的情况下,不是全双工)

在我脑海中,我可以想出几个选择:

  • 使用原始插座。只需确保不要将插座打开太久,并正确关闭即可。听起来主机系统本身并没有完全遵循JavaEE的建议,所以为什么要这样做呢

  • 编写一个.Java EE处理自定义/遗留资源或消息的“首选”方式。从本质上说,这将主机系统转变为可通过访问的资源,并允许容器管理套接字/线程的生命周期

  • 然而,为了简单和不过度工程,我说若原始套接字对您有效,那个么就使用它们,直到强制不要太多

    除非您看到通过JCA提供定制服务的价值,否则很难证明这项工作的合理性


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

    但我在J2EE规范中发现,在J2EE应用程序中使用套接字是一种不好的做法。
    这取决于您如何阅读该语句。如果您盲目地阅读它,并且虔诚地遵循它,那么您就不能编写任何servlet和ejb,并且避免使用数据库,因为它们涉及某种形式的套接字通信。如果理解正确,则不应创建容器无法管理的套接字。