我有一个 shell 脚本来运行我正在使用 Tomcat 6.39 的应用程序。问题是当我运行脚本应用程序启动时,即使该应用程序已经在同一端口上运行。
附言我确实遇到了 port is busy 消息,但在那之后 tomcat 继续加载服务启动包并启动它。
我该如何解决这个问题?
下面是相同的 tomcat 日志:
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
Mar 22, 2018 7:21:09 PM org.apache.coyote.http11.Http11Protocol init
SEVERE: Error initializing endpoint
java.net.BindException: Address already in use (Bind failed) <null>:9894
at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:549)
at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:180)
at org.apache.catalina.connector.Connector.initialize(Connector.java:1124)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:703)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838)
at org.apache.catalina.startup.Catalina.load(Catalina.java:538)
at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
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.load(Bootstrap.java:261)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.net.BindException: Address already in use (Bind failed)
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
at java.net.ServerSocket.bind(ServerSocket.java:375)
at java.net.ServerSocket.<init>(ServerSocket.java:237)
at java.net.ServerSocket.<init>(ServerSocket.java:181)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:50)
at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538)
... 12 more
Mar 22, 2018 7:21:09 PM org.apache.catalina.core.StandardService initialize
SEVERE: Failed to initialize connector [Connector[HTTP/1.1-9894]]
LifecycleException: Protocol handler initialization failed: java.net.BindException: Address already in use (Bind failed) <null>:9894
at org.apache.catalina.connector.Connector.initialize(Connector.java:1126)
at org.apache.catalina.core.StandardService.initialize(StandardService.java:703)
at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838)
at org.apache.catalina.startup.Catalina.load(Catalina.java:538)
at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
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.load(Bootstrap.java:261)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Mar 22, 2018 7:21:09 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 577 ms
Mar 22, 2018 7:21:09 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Mar 22, 2018 7:21:09 PM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.39
Mar 22, 2018 7:21:09 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor host-manager.xml
Mar 22, 2018 7:21:09 PM org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor manager.xml
Mar 22, 2018 7:21:09 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive rp.war
log4j:WARN No such property [maxFileSize] in org.apache.log4j.DailyRollingFileAppender.
log4j:WARN No such property [maxRollFileCount] in org.apache.log4j.DailyRollingFileAppender.
log4j:WARN No such property [maxRollFileCount] in org.apache.log4j.DailyRollingFileAppender.
log4j:WARN No such property [maxRollFileCount] in org.apache.log4j.DailyRollingFileAppender.
log4j:WARN No such property [maxFileSize] in org.apache.log4j.DailyRollingFileAppender.
最佳答案
这就是 Tomcat 的行为方式,因为无法启动服务器套接字并不是致命的,并且绑定(bind)不会在启动期间首先出现。
不会因为一个端口已经忙于另一个Tomcat而停止启动和退出。何时开始由您决定(当收集到所有条件时:足够的可用内存,足够的磁盘空间用于日志,没有任何东西已经绑定(bind)到令人垂涎的端口上)。
关于linux - 尽管端口忙于第一个实例,但多个服务实例正在使用 tomcat 开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49437012/