当我在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地址。
答案 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地址Windows上的ipconfig / all
或
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。