java - Tomcat 停止问题 + Spring Boot + 服务
问题描述
我有 2 个 Spring Boot 项目在同一个 tomcat 上运行:
- REST-API
- 后台服务 (BS)
目的
- REST-API:UI 应用程序使用它来完成任务。
- 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它不会在一次尝试中停止,当我们尝试再停止一次时,它就会停止。
解决方案
此异常主要表明没有服务在您尝试连接的 IP/端口上侦听,因此,您尝试连接到错误的 IP/端口,或者服务器未启动。
推荐阅读
- javascript - 用数组中的元素替换字符“*”的实例 - JavaScript
- java - Java,我可以假设与层次结构的接口吗
- arduino - Arduino光敏电阻
- c++ - 对于列表排序,有没有办法让多个运算符重载具有相同的参数?
- docker - Bitnami/Express 4.16.4 - npm 安装
- amazon-web-services - 启动和关闭适用于 AWS ECS 或 Kubernetes 的实例?
- android - 如何使用 Android Studio 安装 APK 文件?
- r - 过滤数据以仅在两个变量中保留最多 10 个重复项,并且缺少数据
- python-3.x - Python telnetlib 冗长的写入命令
- c++ - 从基类的 shared_ptr 获取对象