Tomcat: не удалось запустить соединитель [Connector [HTTP / 1.1-auto-1]] - PullRequest
0 голосов
/ 03 января 2019

Здравствуйте. Я пытаюсь развернуть свое приложение на удаленном сервере 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 голосов
/ 03 января 2019

Это из-за отсутствия порта в конфигурации вашего коннектора.

Если вы не установите порт в коннекторе, tomcat выберет произвольный порт из доступных свободных портов в системе.

Как и в вашем случае, на удаленном сервере может быть ограничение (из соображений безопасности), чтобы tomcat мог использовать произвольно доступный порт, поэтому по умолчанию он автоматически равен -1, что является недопустимым портом.И он работает локально, потому что нет никаких ограничений относительно случайных портов на вашем локальном компьютере.

Итак, в вашей конфигурации вы должны явно указать порт, разрешенный вашей серверной платформой.

0 голосов
/ 03 января 2019

Установите порт на вашем соединителе, в сообщении об ошибке указано, что по умолчанию используется неверный порт без присутствия:

<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" />
...