Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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 Web应用程序需要打开套接字并支持某些协议_Java_Multithreading_Tomcat_Web Applications_Spring Mvc - Fatal编程技术网

Java Web应用程序需要打开套接字并支持某些协议

Java Web应用程序需要打开套接字并支持某些协议,java,multithreading,tomcat,web-applications,spring-mvc,Java,Multithreading,Tomcat,Web Applications,Spring Mvc,请帮助我为我的任务选择正确(稳定和安全)的方法。我在apachetomcat上用springmvc实现了web应用程序 为了提供一些服务,我需要通过网络连接到外部应用程序。另外,我必须用这个软件支持特定的网络协议 在这种情况下,我的web应用程序是客户端,外部应用程序是服务器。而且,外部应用程序可以在许多实例中运行,所以我的web应用程序必须打开许多套接字 应该异步支持每个连接,因此我似乎应该为每个连接创建一个线程 我想我可以为Spring的dispatcherservlet创建一个Contex

请帮助我为我的任务选择正确(稳定和安全)的方法。我在
apachetomcat
上用
springmvc
实现了web应用程序

为了提供一些服务,我需要通过网络连接到外部应用程序。另外,我必须用这个软件支持特定的网络协议

在这种情况下,我的web应用程序是客户端,外部应用程序是服务器。而且,外部应用程序可以在许多实例中运行,所以我的web应用程序必须打开许多套接字

应该异步支持每个连接,因此我似乎应该为每个连接创建一个线程

我想我可以为Spring的dispatcherservlet创建一个
ContextListener
,并实现生命周期的事件:init和destroy。所以在这里,我可以在初始化阶段创建并启动我的异国服务,并在销毁阶段关闭它

我意识到我的解决方案可能不够准确。可能我应该使用
TaskExecuter
或其他东西。我很想知道你有什么建议


非常感谢

因为您已经在使用Spring MVC,所以简单地使用Spring进行初始化和清理可能会更容易


您可以为每个外部对等方(或者多个具有不同配置设置的对等方,如果它们在其他方面相同的话)创建一个单例服务bean,并将它们用作标准的Spring托管服务。

为什么要尝试为其创建服务?您的web应用程序(客户端)可以简单地使用抽象控制器从外部应用程序调用/请求数据,并在浏览器上显示对任何给定事件的响应


请更具体地说明您想做什么

谢谢您的回答!web应用程序和外部应用程序之间的交互由具有自己场景和状态机的特定协议支持。此协议未使用请求-响应模型实现。用户只能查看通过此协议收集的一条信息。你是说
AbstractController
,是关于SpringMVC的控制器吗?