Подтвердить что ты не робот

Apache Tomcat: java.net.ConnectException: соединение отклонено

в то время как я пытаюсь остановить сервер tomcat, выдавая ошибку, подобную этой.

[[email protected] classes]# service tomcat restart
Stopping Tomcat service:  Using CATALINA_BASE:   /opt/tomcat
Using CATALINA_HOME:   /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME:       /usr
Apr 17, 2011 10:11:53 PM org.apache.catalina.startup.Catalina stopServer
SEVERE: Catalina.stop: 
java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:381)
    at java.net.Socket.connect(Socket.java:537)
    at java.net.Socket.connect(Socket.java:487)
    at java.net.Socket.<init>(Socket.java:384)
    at java.net.Socket.<init>(Socket.java:198)
    at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:421)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:337)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:415)
                                                           [  OK  ]

Starting Tomcat service: Using CATALINA_BASE:   /opt/tomcat
Using CATALINA_HOME:   /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME:       /usr

Может ли кто-нибудь помочь мне исправить эту проблему?

4b9b3361

Ответ 1

Я видел много неадекватных ответов, пытаясь понять это. Общий ответ: "вы пытаетесь остановить что-то, что не запускалось" или "какая-то другая программа работает на нужном вам порту".

Проблема для меня оказалась моей брандмауэром. Я даже не подумал об этом, но порт 8005 (порт, используемый для выключения, спасибо ума) был заблокирован. Я изменил его, и теперь больше нет ошибок. Удачи.

Ответ 2

Был ли запуск Tomcat до перезагрузки? Было ли в этом порту прослушивание другого приложения?

Исключение выбрано потому, что в командном порту никто не слушал (см. <Server port="..." в $tomcat_home/conf/server.xml).

Ответ 3

В зависимости от вашей версии Tomcat это может быть простая проблема (ошибка) с 0-байтным файлом журнала. Взгляните на /var/log/tomcatX.Y, где X.Y - это ваша версия, с которой вы работаете, и проверьте, доступен ли файл журнала catalina.out для чтения и записи. Если он имеет 0 байт и недоступен, просто удалите его и запустите Tomcat. Это разрешило проблему для нас несколько раз уже.

Ответ 4

Не уверен, была ли исправлена ​​ваша проблема и как. Но я столкнулся с такой же проблемой, пытаясь запустить экземпляр tomcat.

  • Порт не использовался.
  • Не было проблем с брандмауэром.
  • Экземпляр Tomcat запускался нормально.

Я изменил пользовательское завершение script, и эта проблема была исправлена. Старый Script: -

export CATALINA_HOME =/home/lrsprod/ELA/tomcat6/apache-tomcat-6.0.35     $ CATALINA_HOME/bin/catalina.sh stop

Добавлена ​​база каталины.

export CATALINA_BASE =/home/lrsprod/ELA/tomcat6/ela_instance export CATALINA_HOME =/home/lrsprod/ELA/tomcat6/apache-tomcat-6.0.35 $CATALINA_HOME/bin/catalina.sh stop

Это сделал трюк.

Ответ 5

вы можете попытаться остановить и начать заново:

$ cd /path/apache-tomcat x.x.x/bin

то

$ sh shutdown.sh

когда вы успешно сделали последний шаг, вы должны включить tomcat и catalina с командой

$ sh startup.sh

Мне удалось решить эту проблему таким образом

Ответ 6

Смысл этого исключения объясняется здесь: https://bz.apache.org/bugzilla/show_bug.cgi?id=27829

Сводка: Java умирает, вызывается Tomcat shut down hook, исключение.

Итак, если брандмауэр не позволяет сообщению завершения работы с Tomcat, Java в конечном итоге умрет первым (ex во время перезагрузки системы/завершения работы), и появится исключение.

Существуют и другие возможности.

В моем случае моя проблема была связана с неправильной установкой моего initscript (Linux). Это означало, что Java была убита ОС во время выключения/перезагрузки, а не в результате script. Решение так просто:

chkconfig --del initscript
chkconfig --add initscript

До исправления у меня было следующее в rc.d:

find /etc/rc.d | grep initscript | sort
/etc/rc.d/init.d/initscript
/etc/rc.d/rc2.d/S85initscript
/etc/rc.d/rc3.d/S85initscript
/etc/rc.d/rc4.d/S85initscript
/etc/rc.d/rc5.d/S85initscript

После исправления:

find /etc/rc.d | grep initscript | sort
/etc/rc.d/init.d/initscript
/etc/rc.d/rc0.d/K15initscript
/etc/rc.d/rc1.d/K15initscript
/etc/rc.d/rc2.d/K15initscript
/etc/rc.d/rc3.d/K15initscript
/etc/rc.d/rc4.d/K15initscript
/etc/rc.d/rc5.d/S85initscript
/etc/rc.d/rc6.d/K15initscript

Заключение: если вы получаете это исключение, убедитесь, что Tomcat выключен правильно, а не в результате завершения Java. Проверьте свои брандмауэры, сценарии завершения работы и т.д.

Ответ 7

Я также столкнулся с этой проблемой. Вы можете попробовать любой из следующих шагов:

Ответ 8

Есть еще одно объяснение этой проблемы с соединением, которое я пропустил из ответов выше. В моем случае я запускал поток (кварцевый планировщик), начиная с контекстного прослушивателя (в contextInitialized), никогда не останавливаясь (например, в contextDestroyed).

Это, в свою очередь, заставило связанный порт сервера быть закрытым, когда контейнер продолжал работать (отсюда: соединение было отказано на порте сервера).

Я зафиксировал его остановку кварца в contextDestroyed, и с тех пор я не сталкивался с этой проблемой.

См. здесь похожие вопросы: Tomcat не останавливается. Как я могу отладить это?

Ответ 9

Другая возможная причина заключается в том, что ваш tomcat еще не полностью запущен.

Если вы выполните ps -ef| grep apache, вы увидите, что сервер работает, и если вы проверите catalina.out, он покажет, что сервер был инициализирован в 123 мс, но он все равно может развертывать приложения в вашем каталоге webapps.