一尘不染

如何在Tomcat(Servlet容器)中侦听套接字?

tomcat

我必须让Web应用程序侦听套接字( ServerSocket ),并处理套接字流。

但是该应用程序只是部署在Tomcat中,而Tomcat只是一个servlet容器,它不支持JCA。并且在servlet线程中建立服务器套接字是不合理的。

解决方案1:

丑陋的解决方案是编写一个 独立的Java应用程序 以侦听套接字,然后与Web服务器通信。但这不是一个好的解决方案。

解决方案2:

我写了一个 ServletContextListener
,当contextInitialized()开始接收套接字时,它将开始由线程处理。这意味着线程池位于ServletContext中。当然,我在contextDestroyed时销毁了线程池。

您如何看待解决方案?


阅读 293

收藏
2020-06-16

共1个答案

一尘不染

“独立Java应用程序”可以从中执行ServletContextListener。您可以使用来管理线程池ExecutorService

2020-06-16