Завершение работы Tomcat6 не удалось

Я установил tomcat 6.0.32 и запустил на нем свое веб-приложение. Обычный останов / запуск работает нормально, когда кот правильно запускается или останавливается. Но когда я пытаюсь остановить кота, когда он находится в середине запуска, остановка завершается неудачей.

$service tomcat6 stop

Stopping tomcat6:                                          [FAILED]

Ошибка в журнале:

SEVERE: Catalina.stop:
java.net.ConnectException: Connection refused
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(Unknown Source)
        at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
        at java.net.PlainSocketImpl.connect(Unknown Source)
        at java.net.SocksSocketImpl.connect(Unknown Source)
        at java.net.Socket.connect(Unknown Source)
        at java.net.Socket.connect(Unknown Source)
        at java.net.Socket.<init>(Unknown Source)
        at java.net.Socket.<init>(Unknown Source)
        at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:422)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:338)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:416)

Я тоже пытался использовать силу, но она не работает. Кто-нибудь знает, как мы можем это исправить?

Примечание: я смог остановить tomcat6 (6.0.24) в середине запуска, но он не работает в версии 6.0.32. Любая помощь / информация будет отличной помощью!

1 ответ

Решение

Это должно помочь любому, кто сталкивается с той же проблемой. Пожалуйста, имейте в виду, что у меня нет объяснения, как работает изменение, но оно решило мою проблему, поэтому разместил его для других.

Есть функция "parseOption" в /etc/init.d/tomcat6, который анализирует конфигурации, указанные в файле конфигурации. Эта функция вызывается в других функциях [stop / start] и отлично работает при разборе конфигов, как показано в выходных данных выше.

Внутри функции остановки она изначально вызывается следующим образом:

   if [ -f "/var/lock/subsys/${NAME}" ]; then
      parseOptions
      $SU - $TOMCAT_USER -c "${TOMCAT_SCRIPT} stop" >> $TOMCAT_LOG 2>&1

Я изменил выше, чтобы:

 if [ -f "/var/lock/subsys/${NAME}" ]; then
    $SU - $TOMCAT_USER -c "${TOMCAT_SCRIPT} stop" >> $TOMCAT_LOG 2>&1
    parseOptions

и это сработало. Я был в состоянии остановить кота в середине запуска и иначе. Остальная часть функции stop выполняется также правильно [удаление файла pid, уничтожение процесса...]. Насколько отличается реализация, когда tomcat находится в режиме запуска или запуска, неясно, так как обычная остановка прекрасно работает без каких-либо изменений в режиме запуска.

Другие вопросы по тегам