您好,我正在尝试将我的应用程序部署在远程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,因为否则我将收到找不到文件的错误。
所有设置与我的本地计算机都相同,因此我很困惑为什么会这样。有提示吗?
答案 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(这是无效端口)的原因。而且它在本地运行,因为对本地计算机上的随机端口没有任何限制。
因此,在配置中,您应明确设置服务器平台允许的端口。