【问题标题】:Multiple service instances are getting started using tomcat although port is busy with the first instance尽管端口正忙于第一个实例,但正在使用 tomcat 启动多个服务实例
【发布时间】:2018-09-01 09:12:49
【问题描述】:

我有一个 shell 脚本来运行我正在使用 Tomcat 6.39 的应用程序。问题是当我运行脚本时,即使应用程序已经在同一个端口上运行,应用程序也会启动。

附:我确实遇到端口繁忙消息,但之后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.

【问题讨论】:

标签: linux shell tomcat sh tomcat6


【解决方案1】:

这就是 Tomcat 的行为方式,因为无法启动服务器套接字并不是致命的,而且在启动期间绑定不会首先出现。

它不会停止启动和退出,因为一个端口已经忙于另一个 Tomcat。什么时候开始由你决定(当所有条件都成立时:足够的可用内存,足够的磁盘空间用于日志,没有任何东西已经绑定到令人垂涎的端口上)。

【讨论】:

  • 我怎样才能避免这种情况?
  • 您可以编写一个启动脚本来进行必要的检查。
  • 是的,我已经在我的脚本中检查了应用程序的状态,工作正常。感谢您的澄清
猜你喜欢
  • 1970-01-01
  • 2012-08-21
  • 2018-02-06
  • 2012-12-24
  • 2015-04-25
  • 2014-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多