2012-02-19 119 views
2

我是Tomcat和Eclipse的新手,但一直在尋找天的解決方案。我已經安裝了Tomcat v7.0,並且可以從終端啓動/停止它,但是我無法從Eclipse中使用它。我下面的教程在http://www.vogella.de/articles/EclipseWTP/article.html#jspservlets,但是當我嘗試運行我的servlet我得到警告:「服務器的Tomcat V7.0服務器在本地主機無法啓動」與控制檯輸出:Tomcat未能在Eclipse中啓動--java.net.BindException:已經在使用的地址

Feb 18, 2012 7:05:54 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 
Feb 18, 2012 7:05:54 PM org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:de.vogella.wtp.filecounter' did not find a matching property. 
Feb 18, 2012 7:05:54 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["http-bio-8080"] 
Feb 18, 2012 7:05:54 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["ajp-bio-8009"] 
Feb 18, 2012 7:05:54 PM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 1046 ms 
Feb 18, 2012 7:05:54 PM org.apache.catalina.core.StandardService startInternal 
INFO: Starting service Catalina 
Feb 18, 2012 7:05:54 PM org.apache.catalina.core.StandardEngine startInternal 
INFO: Starting Servlet Engine: Apache Tomcat/7.0.25 
Feb 18, 2012 7:05:55 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8080"] 
Feb 18, 2012 7:05:55 PM org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-bio-8009"] 
Feb 18, 2012 7:05:55 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 654 ms 
Feb 18, 2012 7:05:55 PM org.apache.catalina.core.StandardServer await 
SEVERE: StandardServer.await: create[localhost:8005]: 
java.net.BindException: Address already in use 
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:422) 
at org.apache.catalina.startup.Catalina.await(Catalina.java:728) 
at org.apache.catalina.startup.Catalina.start(Catalina.java:674) 
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:450) 
Feb 18, 2012 7:05:55 PM org.apache.coyote.AbstractProtocol pause 
INFO: Pausing ProtocolHandler ["http-bio-8080"] 
Feb 18, 2012 7:05:55 PM org.apache.coyote.AbstractProtocol pause 
INFO: Pausing ProtocolHandler ["ajp-bio-8009"] 
Feb 18, 2012 7:05:55 PM org.apache.catalina.core.StandardService stopInternal 
INFO: Stopping service Catalina 
Feb 18, 2012 7:05:55 PM org.apache.coyote.AbstractProtocol stop 
INFO: Stopping ProtocolHandler ["http-bio-8080"] 
Feb 18, 2012 7:05:55 PM org.apache.coyote.AbstractProtocol stop 
INFO: Stopping ProtocolHandler ["ajp-bio-8009"] 
Feb 18, 2012 7:05:55 PM org.apache.coyote.AbstractProtocol destroy 
INFO: Destroying ProtocolHandler ["http-bio-8080"] 
Feb 18, 2012 7:05:55 PM org.apache.coyote.AbstractProtocol destroy 
INFO: Destroying ProtocolHandler ["ajp-bio-8009"] 

的netstat沒有按在嘗試運行Tomcat之前,不會顯示正在使用的端口8080,8005或8009,因此似乎不是問題所在。任何想法出了什麼問題?

回答

4

看起來,當您安裝Tomcat時,它決定在服務模式下運行,並且必須在啓動系統時運行。因此,當你通過eclipse啓動tomcat時發生錯誤。使用server.xml中的其他端口可能無法解決你的問題。我猜測是tomcat的另一個實例已經在運行。你可以在啓動之前檢查另一個tomcat實例的taskmanager是否正在運行它從日食? 也可以發佈netstat運行結果嗎?

+0

感謝回答。我認爲你是對的 - 可能有另一個實例運行,我沒有認識到。我重新啓動了我的系統,Eclipse能夠啓動Tomcat(信息:服務器啓動在484毫秒)。不幸的是,Tomcat本身現在給我一個HTTP 404錯誤:「所請求的資源/de.vogella.wtp.filecounter/servlet/de .vogella.wtp.filecounter.servlets.FileCounter不可用。「 – Sliss 2012-02-19 04:13:50

+0

另外幾個小時的挖掘和http://cse.csusb.edu/turner/java_web_programming/servlets/徹底教程的幫助修復了404s。我只需要在我的xml文件中更正行。 – Sliss 2012-02-19 09:25:39

-2

更改Tomcat的端口設置:

看來Tomcat的已經集成在Eclipse中。因此,在Eclipse中應該有一個名爲「Servers」的項目,您可以找到您的Tomcat配置節點。更改server.xml中的端口屬性。當然,這個插件提供了許多與Tomcat集成的方法,但基本的想法是更改server.xml

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

保存該文件並運行服務器