Apache Tomcat错误:套接字绑定失败

时间:2016-01-30 21:24:44

标签: windows sockets tomcat

当我在Windows 8.1上运行Apache Tomcat服务器时,服务器返回:

java.lang.Exception: Socket bind failed: [730049] The requested address is not valid in its context.  
at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:310)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:790)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:544)
at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:67)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:978)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:569)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:851)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
at org.apache.catalina.startup.Catalina.load(Catalina.java:600)
at org.apache.catalina.startup.Catalina.load(Catalina.java:623)
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:497)
at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484)

这里也是我的server.xml中的连接器:

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"
           address="192.168.0.1"/>

我的引擎:

<Engine name="Catalina" defaultHost="192.168.0.1">

我的主人:

<Host name="192.168.0.1"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">

我还应该提一下我的私人和公共IP地址。

3 个答案:

答案 0 :(得分:1)

根据您的配置

<Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443"
           address="192.168.0.1"/>

并给出错误消息

  

套接字绑定失败:[730049]请求的地址在其中无效   上下文。

似乎Tomcat无法绑定到IP配置的地址 192.168.0.1 ,因为它未分配给任何可用的接口。

确保运行

实际可用IP地址
  

ipconfig / all

Windows上的

  

ifconfig -a

在linux上。

答案 1 :(得分:0)

将设置更改为以下,您应该没问题:

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">

N.B。如果你的ip不是192.168.0.1那么上面的配置将不起作用你需要ifconfig <devicename e.g.eth0/wlan0> 192.168.0.1用于linux,或者相应地更改windows机器的ip地址:http://kb.mit.edu/confluence/display/istcontrib/Windows+8+-+Set+up+with+a+Static+IP+Address

答案 2 :(得分:0)

192.168.0.1几乎肯定不是您的Tomcat主机的IP地址,而是路由器的IP地址。您无法绑定到非本地IP地址。大多数情况下,您根本不需要指定此属性,默认为0.0.0.0,这意味着“任何”。关于唯一需要指定它的时间是你想要将它设置为127.0.0.1,对于只应该从本地主机访问的Tomcat。