首页 > 解决方案 > Tomcat 停止问题 + Spring Boot + 服务

问题描述

我有 2 个 Spring Boot 项目在同一个 tomcat 上运行:

  1. REST-API
  2. 后台服务 (BS)

目的

  1. REST-API:UI 应用程序使用它来完成任务。
  2. BS:根据 UI 活动,此服务会被执行并实时完成。

细节
BS 被写为while(1)考虑相同的目的。

Tomcat 错误
第一次尝试:

Using CATALINA_PID:    /home/user/bin/pid/tomcat_pid  
Tomcat did not stop in time.  
PID file was not removed.  
To aid diagnostics a thread dump has been written to standard out  

第二次尝试:

java.net.ConnectException: Connection refused (Connection refused)  
  at java.net.PlainSocketImpl.socketConnect(Native Method)  
  at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
  at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
 at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)   at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)  
 at java.net.Socket.connect(Socket.java:589)  
 at java.net.Socket.connect(Socket.java:538)  
 at java.net.Socket.<init>(Socket.java:434)  
        at java.net.Socket.<init>(Socket.java:211)  
        at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:492)  
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)  
        at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:406)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:495)
The stop command failed. Attempting to signal the process to stop through OS signal.
Tomcat stopped.

问题:
1.当我重新启动tomcat时,BS项目只会运行并且REST-API没有启动(我猜这是因为while(1)它开始执行并且没有机会启动REST-API项目)
2.停止tomcat它不会在一次尝试中停止,当我们尝试再停止一次时,它就会停止。

标签: javaspring-boottomcatservice

解决方案


此异常主要表明没有服务在您尝试连接的 IP/端口上侦听,因此,您尝试连接到错误的 IP/端口,或者服务器未启动。


推荐阅读