我在从 Netbeans 11 启动 Apache Tomcat 9 时遇到问题(在 8.2 版本上我遇到了同样的问题。我使用的是 Apache Tomcat 8)。
我已尝试过:
- 删除 catalina.bat 中的引号。
- 删除了“使用 IDE 代理设置”的复选标记
在 server.xml 中更改/添加了以下代码(我确实写了,但由于某种原因如果不隐藏它就无法写入)
连接器连接超时=“20000”端口=“8080”协议=“HTTP / 1.1”重定向端口=“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"
/>
到 server.xml
并将 NETBEANS 中的代理设置为“无代理”(不在服务器上)。解决了该问题。