Завершение работы Tomcat6 не удалось - PullRequest
4 голосов
/ 23 июня 2011

У меня установлен 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 Ответ

4 голосов
/ 29 июня 2011

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

В /etc/init.d/tomcat6 есть функция parseOption, которая анализирует указанные конфигурации.в конфигурационном файле.Эта функция вызывается в других функциях [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, уничтожение процесса ...].Насколько отличается реализация, когда кот находится в режиме запуска или запуска, неясно, так как обычная остановка прекрасно работает без каких-либо изменений в режиме запуска.

...