Tomcat:无法启动连接器[Connector [HTTP / 1.1-auto-1]]

时间:2019-01-02 21:27:35

标签: tomcat8

您好,我正在尝试将我的应用程序部署在远程tomcat服务器(8.5.30)上。为了运行我的应用程序,我需要在/conf/server.xml

上添加以下行
<Connector SSLEnabled="true" 
                clientAuth="false" keystoreFile="blc-example.keystore" keystorePass="xx" 
                keyPass="xx" maxThreads="150"
                scheme="https" secure="true" sslProtocol="TLS" />

这在我的本地计算机上工作得很好。但是在远程服务器上由于某种原因,我在启动时遇到此错误

02-Jan-2019 16:19:37.783 SEVERE [main] org.apache.catalina.core.StandardService.startInternal Failed to start connector [Connector[HTTP/1.1-auto-1]]
 org.apache.catalina.LifecycleException: Failed to start component [Connector[HTTP/1.1-auto-1]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:440)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:793)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:681)
    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.start(Bootstrap.java:353)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:493)
Caused by: org.apache.catalina.LifecycleException: The connector cannot start since the specified port value of [-1] is invalid
    at org.apache.catalina.connector.Connector.startInternal(Connector.java:1011)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 11 more

我非常确定tomcat可以看到keystoreFile,因为否则我将收到找不到文件的错误。

所有设置与我的本地计算机都相同,因此我很困惑为什么会这样。有提示吗?

2 个答案:

答案 0 :(得分:0)

在连接器上设置一个端口,它确实在错误中指出默认情况下是无效端口,不存在该端口:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" 
           clientAuth="false" keystoreFile="blc-example.keystore" keystorePass="xx" 
           keyPass="xx" maxThreads="150"
           scheme="https" secure="true" sslProtocol="TLS" />

答案 1 :(得分:0)

那是因为连接器配置中缺少端口。

如果您未在连接器中设置端口,tomcat将从系统中可用的空闲端口中选择一个随机端口。

在您的情况下,由于安全原因,远程服务器上可能会限制tomcat使用随机可用端口,这就是为什么它自动默认为-1(这是无效端口)的原因。而且它在本地运行,因为对本地计算机上的随机端口没有任何限制。

因此,在配置中,您应明确设置服务器平台允许的端口。