Java Tomcat中的地址绑定异常

Java Tomcat中的地址绑定异常,java,windows,tomcat,Java,Windows,Tomcat,我们从一年前开始在ApacheTomcat8.0.36服务器上运行Java8Web应用程序。 从过去几天开始,有时当我们重新启动Tomcat服务器时,应用程序不工作。日志显示Https端口的地址绑定异常。 我尝试在cmd中使用以下命令检查与端口关联的进程: netstat-aon | findstr[端口] 但它没有显示与端口相关的任何进程 我尝试过从任务管理器关闭tomcat进程,也尝试过执行tomact shutdown.bat,然后再次启动tomcat,但没有任何帮助 如果在部署应用程序的

我们从一年前开始在ApacheTomcat8.0.36服务器上运行Java8Web应用程序。 从过去几天开始,有时当我们重新启动Tomcat服务器时,应用程序不工作。日志显示Https端口的地址绑定异常。 我尝试在cmd中使用以下命令检查与端口关联的进程:

netstat-aon | findstr[端口]

但它没有显示与端口相关的任何进程

我尝试过从任务管理器关闭tomcat进程,也尝试过执行tomact shutdown.bat,然后再次启动tomcat,但没有任何帮助

如果在部署应用程序的地方重新启动系统,问题就会得到解决,但我们无法随时重新启动系统

请帮助解决可能出现的问题以及可以检查的其他问题

以下是tomcat错误日志中的错误:

03-Aug-2018 11:42:32.008 INFO [main] org.apache.coyote.AbstractProtocol.init 
Initializing ProtocolHandler ["http-nio-443"]
03-Aug-2018 11:42:32.008 SEVERE [main] 
org.apache.coyote.AbstractProtocol.init Failed to initialize end point 
associated with ProtocolHandler ["http-nio-443"]
java.net.BindException: Address already in use: bind
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Unknown Source)
at sun.nio.ch.Net.bind(Unknown Source)
at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)
at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:351)
at 
org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:748)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:459)
at 
org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11Jss
eProtocol.java:120)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:960)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardService.initInternal
(StandardService.java:568)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at  org.apache.catalina.core.StandardServer.initInternal
 (StandardServer.java:869)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:580)
at org.apache.catalina.startup.Catalina.load(Catalina.java:603)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)

03-Aug-2018 11:42:32.008 SEVERE [main] 
 org.apache.catalina.core.StandardService.initInternal Failed to initialize 
 connector [Connector[HTTP/1.1-443]]
 org.apache.catalina.LifecycleException: Failed to initialize component 
[Connector[HTTP/1.1-443]]
 at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
 at org.apache.catalina.core.StandardService.initInternal
(StandardService.java:568)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardServer.initInternal
(StandardServer.java:869)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:580)
at org.apache.catalina.startup.Catalina.load(Catalina.java:603)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)
Caused by: org.apache.catalina.LifecycleException: Protocol handler 
initialization failed
at org.apache.catalina.connector.Connector.initInternal(Connector.java:962)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
... 12 more
Caused by: java.net.BindException: Address already in use: bind
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Unknown Source)
at sun.nio.ch.Net.bind(Unknown Source)
at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)
at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:351)
at 
org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:748)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:459)
at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init
(AbstractHttp11JsseProtocol.java:120)
 at org.apache.catalina.connector.Connector.initInternal(Connector.java:960)
 ... 13 more03-Aug-2018 11:42:32.008 INFO [main] 
org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http- 
nio-443"]
03-Aug-2018 11:42:32.008 SEVERE [main] 
org.apache.coyote.AbstractProtocol.init 
Failed to initialize end point associated with ProtocolHandler ["http-nio- 
443"]
java.net.BindException: Address already in use: bind
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Unknown Source)
at sun.nio.ch.Net.bind(Unknown Source)
at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)
at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:351)
at org.apache.tomcat.util.net.AbstractEndpoint.init
(AbstractEndpoint.java:748)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:459)
at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init
(AbstractHttp11JsseProto col.java:120)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:960)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardService.initInternal
(StandardService.java:568)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardServer.initInternal
(StandardServer.java:869)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:580)
at org.apache.catalina.startup.Catalina.load(Catalina.java:603)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)

03-Aug-2018 11:42:32.008 SEVERE [main] 
org.apache.catalina.core.StandardService.initInternal Failed to initialize 
connector [Connector[HTTP/1.1-443]]
org.apache.catalina.LifecycleException: Failed to initialize component 
[Connector[HTTP/1.1-443]]
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
at org.apache.catalina.core.StandardService.initInternal
(StandardService.java:568)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.core.StandardServer.initInternal
(StandardServer.java:869)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
at org.apache.catalina.startup.Catalina.load(Catalina.java:580)
at org.apache.catalina.startup.Catalina.load(Catalina.java:603)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)
Caused by: org.apache.catalina.LifecycleException: Protocol handler 
initialization failed
at org.apache.catalina.connector.Connector.initInternal(Connector.java:962)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
... 12 more
Caused by: java.net.BindException: Address already in use: bind
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Unknown Source)
at sun.nio.ch.Net.bind(Unknown Source)
at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)
at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:351)
at org.apache.tomcat.util.net.AbstractEndpoint.init
(AbstractEndpoint.java:748)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:459)
at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init
(AbstractHttp11JsseProtocol.java:120)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:960)
... 13 more

请参阅下面的更新。我们认为我们已经找到了根本原因和解决方案

我们也有同样的问题:一个运行了将近一年没有问题的tomcat服务无法绑定到它停止然后重新启动后使用的端口

我们通常每晚定期停止并重新启动我们的tomcat服务,而且它过去工作正常。问题首先发生在7月24日,因此在我和我们的IT部门进行了大量研究之后,我怀疑7月24日前不久发生的IT基础设施的某种变化导致了这个问题

我们的服务器是64位Windows server 2012 R2,但我们的IT环境是虚拟化的,运行在vSphere主机版本6上。tomcat在什么服务器/基础设施上运行?它是虚拟化系统还是在物理服务器上运行

在我看来,问题出现在上次安装的Windows修补程序中 (KB4338815和/或KB4339093)或使用一些虚拟机监控程序更新。但我们的IT仍在研究中

目前,作为一种解决方法,我们在关闭服务时重新启动服务器 每天晚上定时重启。但是因为问题不可靠,就发生了 每次关机/重启,我们都会在确实必要时重启服务器。为了实现这一点,我们在server.xml中实现并配置了一个侦听器,该侦听器在tomcat服务启动后立即扫描stderr.log。如果检测到发生绑定异常,则会重新启动服务器(tomcat服务是自动安装的)。如果你找到了这个问题的原因,请把它贴在这里,我会的,如果我或我们的it会找到的话

8月7日更新: 我们认为我们已经找到了根本原因。很明显,7月份的Windows每月质量汇总报告引入了这个问题。在我们的例子中(Windows Server 2012 R2,64位),有问题的更新是KB4338815(请参阅)

如果您对internet进行快速研究,也会影响Windows IIS Web服务器和MS SQL Server的问题通常被描述为与KB4338818有关(请参阅),但这与Windows Server 2008 R2和Windows 7的更新是相同的

微软已经意识到了这个问题,并在上述文章的“此更新中的已知问题”部分的KB4338815和KB4338818文档中对此进行了描述。Microsoft声明KB4338831(适用于Windows Server 2012 R2,Windows 8.1)和KB4338821(适用于Windows Server 2008 R2,Windows 7)解决了此问题


在我们的案例中,我们安装了热修复程序KB4345424(请参阅),也可从Microsoft获得,它解决了此错误,就我们所见,该问题不再存在。

tomcat正在windows或linux上运行?在windows上运行Kill skype进程如果在windows上运行,则检查系统中是否未安装tomcatskype。请共享tomcat日志的最后10-15行>?我们也安装了windows Server 2012 R2、64位和一些修补程序(没有修补程序号)。我们仍在调查此问题,尚未找到修复程序。这也解决了无法在不重新启动整个服务器的情况下重新启动Jenkins(端口已在使用)的问题。()非常感谢。由于这个答案,我们更新了windows 7,我们的问题得到了解决。