Tomcat 無法在 Netbeans 上啟動

Tomcat 無法在 Netbeans 上啟動

我從 Netbeans 11 啟動 Apache Tomcat 9 時遇到問題(在 8.2 版本上我也遇到了同樣的問題。我使用 Apache Tomcat 8)。

我嘗試過的:

  • 刪除了 catalina.bat 中的引號。
  • 刪除了「使用 IDE 代理設定」的複選標記
  • 在 server.xml 中更改/添加了下面的程式碼(我確實寫了,但由於某種原因無法將其隱藏)

    連接器connectionTimeout =“20000”連接埠=“8080”協定=“HTTP/1.1”redirectPort=“8443”伺服器=“Apache-Coyote/1.1”

在 Netbeans 8.2 上,我先安裝外掛程式「Java EE」以便能夠新增 tomcat。之後,我添加了 Tomcat 8.5.46 tar.gz 文件(也嘗試在開始時使用 zip 文件,但也不起作用)。在 Netbeans 中建立一個 Web 應用程式並運行它只是給了我伺服器無法啟動的錯誤。嘗試再次執行該文件,然後出現「Tomcat 啟動失敗,伺服器連接埠 8080 已在使用中」。

在 Netbeans 11 上,它在嘗試新增伺服器時下載了標準。完成後,我下載了 Tomcat 9.0.26 tar.gz。這會帶來與 Netbeans 8.2 中完全相同的問題。

它只是說“Tomcat 啟動失敗”。在調試模式下我收到這些錯誤。

24-Sep-2019 18:08:14.774 SEVERE [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[HTTP/1.1-8080]]
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8080]]
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:112)
    at org.apache.catalina.core.StandardService.initInternal(StandardService.java:552)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
    at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:852)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:639)
    at org.apache.catalina.startup.Catalina.load(Catalina.java:662)
    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:498)
    at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:309)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)
Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:995)
    at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107)
    ... 12 more
Caused by: java.net.BindException: Address already in use
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Net.java:433)
    at sun.nio.ch.Net.bind(Net.java:425)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
    at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:219)
    at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1118)
    at org.apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:224)
    at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:581)
    at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:68)
    at org.apache.catalina.connector.Connector.initInternal(Connector.java:993)
    ... 13 more

答案1

添加

<Connector
connectionTimeout="20000"
port="8080"
protocol="HTTP/1.1"
redirectPort="8443"
server="Apache-Coyote/1.1"
/>

到伺服器.xml

並將NETBEANS中的代理程式設定為「無代理程式」(不在伺服器上)。解決了這個問題。

相關內容