10

当我启动我的 Tomcat 语言环境实例时,我收到以下错误:

    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 中的主机文件和行

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" />

谢谢你的帮助

4

9 回答 9

11

我通过指定解决了这个问题

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

在 conf/server.xml。

于 2014-07-12T12:39:54.367 回答
7

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

C:\Windows\System32\drivers\etc\hosts
于 2015-11-10T11:01:50.710 回答
3

最可能的原因是:您的 localhost 的 IP 地址未在主机文件中正确配置。验证主机文件:运行:system32:驱动程序:等:主机在记事本中打开此主机文件

将此 localhost 行保留为主机文件中的第一行。关闭一切。从 Eclipse 中删除服务器并重新配置它。它应该有帮助。

于 2014-01-22T10:03:52.117 回答
3

就我而言,这是主机文件(Windows)的问题。实际上我从一开始就有以下条目... 172.16.xxx.yyy localhost

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

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

于 2015-10-01T14:03:54.717 回答
2

我设法解决了这个问题。

我在 Eclipse 中使用本地 tomcat 时遇到了同样的问题(它无法启动,因为它找不到 tomcat.bin)。我在 Eclipse 的服务器选项卡中右键单击 Tomcat 服务器,然后单击属性。在常规属性中有一个按钮“切换位置”。它曾经在 Eclipse 中指向本地 Tomcat,但使用此按钮将其更改为 C 盘上实际安装 Tomcat 的文件夹。现在 Tomcat 在 Eclipse 和 localy 中都可以工作。

于 2012-07-24T12:27:03.490 回答
1

警告:使用建议的解决方案(服务器地址=“0.0.0.0”)允许任何攻击者远程关闭您的系统。

我建议使用:< 服务器地址="127.0.0.2" 端口="8005" shutdown="SHUTDOWN" >

127.0.0.2 将作为环回地址工作,但不会干扰在 localhost (127.0.0.1) 上侦听的任何其他服务

于 2021-08-30T10:20:21.723 回答
0

当主机文件的权限设置不正确时,我在服务器上遇到了这个问题

运行chmod 644 hosts纠正了这个问题。

于 2016-02-12T14:40:53.100 回答
0

第 1 步:转到 C:\Windows\System32\drivers\etc

第2步:

找到主机文件并使用记事本以管理员模式打开它

第 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步:

保存该文件并运行服务器

于 2017-02-09T06:38:50.287 回答
0

我知道在这个帖子中发帖有点晚了,但我想帮助那些来寻找答案并遇到与我类似的问题的人。而且我无法发表评论,因为我没有足够的代表。

正如OP发布的那样,

我还检查了 Windows\System32\drivers\etc 中的主机文件和行

127.0.0.1 localhost

没有评论。我没有更改 server.xml 中的任何内容,从昨天开始我无法让它工作。有任何想法吗?

我想对这部分发表评论。在我的情况下,以下行也没有评论。

127.0.0.1 localhost

但是,还有另一行将“localhost”绑定到旧的本地 IP。

127.0.0.1 localhost 10.10.1.123 localhost

由于路由器重新配置,最近更改了我的旧本地 IP,这是罪魁祸首。因此,评论该重复行解决了我的问题。

结论是,除了检查环回 IP 是否被注释外,还要检查“localhost”是否有多个绑定。

于 2019-08-09T09:14:55.940 回答