java - 在监听器类中配置的套接字服务器阻止了 tomcat 的运行

标签 java spring serversocket

我试图创建一个关于套接字通信的 web 项目,但是 tomcat 卡在了运行中。我将服务器类放在一个监听器类中,以便在项目启动时启动。但是我遇到了一个问题,似乎 spring config xml 没有启动。
我猜服务器类一直在监听,阻塞了 tomcat 的运行。
我该如何解决这个问题?
web.xml主要代码

 <listener>
    <listener-class>socket.ServerListener</listener-class>
</listener>
<servlet>
    <servlet-name>context</servlet-name>
    <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>

最佳答案

如果您在调用监听器的同一个线程中调用 accept(),Tomcat 当然会被阻塞。在您的监听器方法返回之前,Tomcat 无法继续。

道德:不要那样做。使用单独的线程。

关于java - 在监听器类中配置的套接字服务器阻止了 tomcat 的运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10346221/

相关文章:

java - 在 thymeleaf 模板中发布 OneToMany 数据库记录

java - 使基本的 Java 文件服务器成为多线程的

java - 如何使用 Java 7 模式重写 Java 8 Stream()?

spring - 如何在 kotlin 中使用 spring 数据和 r2dbc 映射一个类

java - 为什么在 HashMap 中有空值或空键很有用?

java - 一个 webapp 有两个独立的 Spring 上下文

Android/iOS 设置设备热点IP地址

Java套接字编程

java - 当从用户那里获取名称输入时,如何让它在重新启动时保留在 Activity 中?

c# - Java Force 接受 SSL 证书