无法在Eclipse中启动Tomcat(Mac OS X) - java.net.BindException:无法分配请求的地址

时间:2012-11-10 13:20:17

标签: eclipse macos tomcat

我在Mac OS X 10.8.2上使用Eclipse上的Tomcat v.7.0时遇到问题。 我假设问题是我在同一个笔记本上运行了另一个旧版本的Tomcat。但我无法找到并关闭/杀死它。

当我尝试在Eclipse上启动Tomcat时,我得到以下错误:

    Nov 10, 2012 2:45:45 PM org.apache.catalina.core.StandardServer await
    SEVERE: StandardServer.await: create[localhost:8005]: 
    java.net.BindException: Can't assign requested address
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
        at java.net.ServerSocket.bind(ServerSocket.java:328)
        at java.net.ServerSocket.<init>(ServerSocket.java:194)
        at org.apache.catalina.core.StandardServer.await(StandardServer.java:427)
        at org.apache.catalina.startup.Catalina.await(Catalina.java:766)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:712)
        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:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:451)

完整日志如下。

我尝试使用聚光灯和程序查找任何文件(http://apps.tempel.org/FindAnyFile/index.php)来查找我的Tomcat安装位置。我找了关键字'catalina.sh',我删除了所有这些调查结果的父文件夹。 我还删除了我的eclipse工作区并重新安装了eclipse。启动我的笔记本。没有帮助。

当我进行端口扫描时,它没有显示任何内容。见截图:

enter image description here

请告知我应该如何找出Tomcat的错误,以及如何删除它。

(我是Java EE和Mac OSX的新手)

    Nov 10, 2012 2:45:44 PM org.apache.catalina.core.AprLifecycleListener init
    INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
    Nov 10, 2012 2:45:44 PM org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["http-bio-8080"]
    Nov 10, 2012 2:45:44 PM org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
    Nov 10, 2012 2:45:44 PM org.apache.catalina.startup.Catalina load
    INFO: Initialization processed in 1553 ms
    Nov 10, 2012 2:45:44 PM org.apache.catalina.core.StandardService startInternal
    INFO: Starting service Catalina
    Nov 10, 2012 2:45:44 PM org.apache.catalina.core.StandardEngine startInternal
    INFO: Starting Servlet Engine: Apache Tomcat/7.0.32
    Nov 10, 2012 2:45:45 PM org.apache.coyote.AbstractProtocol start
    INFO: Starting ProtocolHandler ["http-bio-8080"]
    Nov 10, 2012 2:45:45 PM org.apache.coyote.AbstractProtocol start
    INFO: Starting ProtocolHandler ["ajp-bio-8009"]
    Nov 10, 2012 2:45:45 PM org.apache.catalina.startup.Catalina start
    INFO: Server startup in 719 ms
    Nov 10, 2012 2:45:45 PM org.apache.catalina.core.StandardServer await
    SEVERE: StandardServer.await: create[localhost:8005]: 
    java.net.BindException: Can't assign requested address
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
        at java.net.ServerSocket.bind(ServerSocket.java:328)
        at java.net.ServerSocket.<init>(ServerSocket.java:194)
        at org.apache.catalina.core.StandardServer.await(StandardServer.java:427)
        at org.apache.catalina.startup.Catalina.await(Catalina.java:766)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:712)
        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:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:451)
    Nov 10, 2012 2:45:45 PM org.apache.coyote.AbstractProtocol pause
    INFO: Pausing ProtocolHandler ["http-bio-8080"]
    Nov 10, 2012 2:45:47 PM org.apache.coyote.AbstractProtocol pause
    INFO: Pausing ProtocolHandler ["ajp-bio-8009"]
    Nov 10, 2012 2:45:49 PM org.apache.catalina.core.StandardService stopInternal
    INFO: Stopping service Catalina
    Nov 10, 2012 2:45:49 PM org.apache.coyote.AbstractProtocol stop
    INFO: Stopping ProtocolHandler ["http-bio-8080"]
    Nov 10, 2012 2:45:51 PM org.apache.coyote.AbstractProtocol stop
    INFO: Stopping ProtocolHandler ["ajp-bio-8009"]
    Nov 10, 2012 2:45:53 PM org.apache.coyote.AbstractProtocol destroy
    INFO: Destroying ProtocolHandler ["http-bio-8080"]
    Nov 10, 2012 2:45:53 PM org.apache.coyote.AbstractProtocol destroy
    INFO: Destroying ProtocolHandler ["ajp-bio-8009"]

5 个答案:

答案 0 :(得分:4)

我通过指定

解决了这个问题

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

在conf / server.xml。

答案 1 :(得分:2)

您正在尝试启动Tomcat的同一端口上运行某些内容。

 sudo lsof -i :8080 # checks port 80

默认值为8080,它在Tomcat conf目录的server.xml中设置。

答案 2 :(得分:1)

添加

-Djava.net.preferIPv4Stack=true

到我的CATALINA_OPTS为我解决了这个问题。显然,localhost没有在IPv6上设置。

答案 3 :(得分:0)

FAF的作者:)

我不是Tomcat专家,但我建议您订阅lists.apple.com上的“Macos-x-server”列表并在那里寻求帮助。

此外,Tomcat是否曾在该系统上运行过?如果没有,可能您配置了非法端口。尝试将端口号更改为1024以上,并查看是否有帮助。

最后,我认为你在错误的网站上提问。这是编程问题。 SO旁边还有其他OSX / Server特定站点可能是更好的问题。

答案 4 :(得分:0)

检查您是否只有一台网络设备。一旦我将WiFi连接切换为仅在工作时使用我的以太网连接,我的问题就解决了。在家里,WiFi工作正常,因为这是我在那里唯一的连接。

不知道为什么会这样,我猜想Tomcat会对设备感到困惑并错误地分配端口。