Tomcat Web 应用程序中的 Java TCP 服务器

3

各位,我有一个独立运行的Java服务器应用程序,它会获取TCP连接并进行一些处理,同时发送回一些响应。我想将其与Web应用程序一起在Tomcat Web服务器中运行。我将通过使用web.xml中的onload =1在servlet中启动服务器应用程序。因此,在Tomcat启动时也会启动服务器应用程序。我期望两个应用程序可以在Tomcat下运行,并共享某些单例类和公共类。我还使用了Hibernate,并希望部署应用程序时没有问题。如果有任何问题或建议,请告诉我。


使用像Spring这样的Web框架,将您的TCP服务器作为Web应用程序中的另一个单例。 - Kevin
1个回答

4
以下是需要考虑的几点:
  1. 您启动的辅助服务器需要分叉并拥有自己的线程。如果不这样做,Tomcat可能无法完成启动过程。这在从Servlet启动时可能不是问题,但如果按照第二条建议操作,则可能会出现问题。
  2. 辅助服务器需要能够接收某种类型的信号来知道它何时关闭。我建议使用ServletContextListener而不是Servelet进行启动。它能够接收启动和关闭事件,因此您可以从那里初始化和销毁辅助服务器。

您的ServletContextListener需要实现以下方法:

public void contextInitialized(ServletContextEvent event)

public void contextDestroyed(ServletContextEvent event)

谢谢!这解决了我的用例。在实现ServletContextListener之后,只需使用<listener>标签将其添加到web.xml中。 - Manuel Araoz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接