2012-05-24 127 views
8

当我开始我的Tomcat的Locale实例,我得到以下错误:Tomcat将无法启动:java.net.BindException:无法分配请求的地址

SEVERE: StandardServer.await: create[8005]: 
    java.net.BindException: Cannot assign requested address: JVM_Bind 
    at java.net.PlainSocketImpl.socketBind(Native Method) 
    at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359) 
    at java.net.ServerSocket.bind(ServerSocket.java:319) 
    at java.net.ServerSocket.<init>(ServerSocket.java:185) 
    at org.apache.catalina.core.StandardServer.await(StandardServer.java:373) 
    at org.apache.catalina.startup.Catalina.await(Catalina.java:662) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:614) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:585) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 

我看到论坛上的人有同样的问题。 Netstat不显示正在使用的端口8080,8005或8009。我试图改变端口,但我得到了同样的错误。我也检查了 的Windows \ SYSTEM32 \ drivers \ etc下的hosts文件和行

127.0.0.1  localhost 

没有评论。我没有更改server.xml中的任何内容,并且从昨天开始我无法使其工作。 有什么建议吗?

编辑:

<Server port="8005" shutdown="SHUTDOWN"> 

Connectors: 
<Connector port="8080" protocol="HTTP/1.1" 
       connectionTimeout="20000" 
       redirectPort="8443" /> 

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" SSLEnabled="true" 
       maxThreads="150" scheme="https" secure="true" 
       clientAuth="false" sslProtocol="TLS" 
       /> 

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 

感谢您帮助

+0

这不是关机的问题,这是一个启动问题。可能Tomcat已经在运行。 – EJP

+0

请发布您的所有元素和元素的开始元素。 –

+0

我遇到同样的问题。你解决了吗? – rnunes

回答

2

我设法解决这个问题。

我在Eclipse中与本地tomcat有同样的问题(它不会启动,因为它找不到tomcat.bin)。 我右键单击Eclipse中服务器选项卡中的Tomcat服务器并单击属性。在常规属性中有一个按钮“切换位置”。它曾经指向Eclipse上的本地Tomcat,但通过此按钮,它将其更改为C驱动器上实际安装Tomcat的文件夹。现在Tomcat正在Eclipse和本地工作。

2

最可能的原因是:您的localhost IP地址在主机文件中没有正确配置。 验证主机文件: 运行:SYSTEM32:司机:等:主机 用记事本打开

该主机文件保留此行本地主机作为主机文件一号线。 关闭一切。 从Eclipse中删除服务器并重新配置它。 它应该有所帮助。

8

我通过指定

<Server address="0.0.0.0" port="8005" shutdown="SHUTDOWN">

在CONF/server.xml中解决了这个。

+0

对于我来说,实际上address =“0.0.0.0”并不总是很好。我需要用网络接口的IP替换0.0.0.0(但不要使用环回地址127.0.0.1,使用网卡的IP地址) – walkeros

+0

这对'tomcat-7.0.62'和'macOS Sierra' 。 – loretoparisi

+0

在Solaris中,此解决方案适用于我。谢谢! – Shreyas

3

在我的情况下,这是主机文件(Windows)的问题。 其实我从一开始就在它下面的项... 172.16.xxx.yyy本地主机

,大约200星期前,有一个物理服务器和网络分域的活动在我们的公司,该公司改变了进行所有机器的IP。 在这里,我的yyy被改变了。

当我编辑我的IP时,错误消失了。 感谢Saurabh Chande为此。

6

您的服务器的IP已被更改(即使您不使用其他网卡的IP),您必须进行编辑。

C:\Windows\System32\drivers\etc\hosts 
0

我有一个服务器上的这个问题时,并没有建立在hosts文件的权限正确

运行chmod 644 hosts修正了该问题。

0

第1步: 进入C:\ WINDOWS \ SYSTEM32 \ drivers \ etc下

第2步:

找到hosts文件,用记事本管理模式打开

第3步:

用127.0.0.1替换本地主机IP

例如

# Copyright (c) 1993-2009 Microsoft Corp. 
# 
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows. 
# 
# This file contains the mappings of IP addresses to host names. Each 
# entry should be kept on an individual line. The IP address should 
# be placed in the first column followed by the corresponding host name. 
# The IP address and the host name should be separated by at least one 
# space. 
# 
# Additionally, comments (such as these) may be inserted on individual 
# lines or following the machine name denoted by a '#' symbol. 
# 
# For example: 
# 
#  102.54.94.97  rhino.acme.com   # source server 
#  38.25.63.10  x.acme.com    # x client host 

# localhost name resolution is handled within DNS itself. 
    127.0.0.1  localhost 
# ::1    localhost 

第4步:

保存该文件并运行服务器

相关问题