Запуск Tomcat, адрес 8080 уже используется - PullRequest
27 голосов
/ 07 ноября 2011

Настройка:

  • Amazon EC2
  • Tomcat (с безопасной пересылкой на 8443)
  • Apache 2.2

Iзапустите shutdown.sh, и я не получаю ошибок.

НО, когда я пытаюсь запустить запуска .sh Я получаю эту ошибку:

07-Nov-2011 17:40:40 org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/client:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/../lib/i386:/usr/java/packages/lib/i386:/lib:/usr/lib
07-Nov-2011 17:40:41 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
07-Nov-2011 17:40:41 org.apache.coyote.http11.Http11Protocol init
SEVERE: Error initializing endpoint
java.net.BindException: Address already in use <null>:8080
        at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:549)
        at org.apache.coyote.http11.Http11Protocol.init(Http11Protocol.java:176)
        at org.apache.catalina.connector.Connector.initialize(Connector.java:1022)
        at org.apache.catalina.core.StandardService.initialize(StandardService.java:703)
        at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:538)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
        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.load(Bootstrap.java:261)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.net.BindException: Address already in use
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:336)
        at java.net.ServerSocket.bind(ServerSocket.java:336)
        at java.net.ServerSocket.<init>(ServerSocket.java:202)
        at java.net.ServerSocket.<init>(ServerSocket.java:158)
        at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:50)
        at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538)
        ... 12 more
07-Nov-2011 17:40:41 org.apache.catalina.core.StandardService initialize
SEVERE: Failed to initialize connector [Connector[HTTP/1.1-8080]]
LifecycleException:  Protocol handler initialization failed: java.net.BindException: Address already in use <null>:8080
        at org.apache.catalina.connector.Connector.initialize(Connector.java:1024)
        at org.apache.catalina.core.StandardService.initialize(StandardService.java:703)
        at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:838)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:538)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:562)
        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.load(Bootstrap.java:261)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
07-Nov-2011 17:40:41 org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8443
07-Nov-2011 17:40:41 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 615 ms
07-Nov-2011 17:40:41 org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
07-Nov-2011 17:40:41 org.apache.catalina.core.StandardEngine start

INFO: Starting service Catalina
07-Nov-2011 17:40:41 org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/6.0.33
07-Nov-2011 17:40:41 org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor host-manager.xml
07-Nov-2011 17:40:41 org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor manager.xml
07-Nov-2011 17:40:41 org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive test.war
log4j:WARN No appenders could be found for logger (StackTrace).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
log4j:ERROR Error initializing log4j: grails/plugins/springsecurity/SecurityConfigType : Unsupported major.minor version 51.0 (unable to load class grails.plugins.springsecurity.SecurityConfigType)
java.lang.UnsupportedClassVersionError: grails/plugins/springsecurity/SecurityConfigType : Unsupported major.minor version 51.0 (unable to load class grails.plugins.springsecurity.SecurityConfigType)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:186)
        at Config.class$(Config.groovy)
        at Config.$get$$class$grails$plugins$springsecurity$SecurityConfigType(Config.groovy)
        at Config.run(Config.groovy:116)
07-Nov-2011 17:40:43 org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
07-Nov-2011 17:40:43 org.apache.catalina.core.StandardContext start
SEVERE: Context [/test] startup failed due to previous errors
07-Nov-2011 17:40:43 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SEVERE: The web application [/test] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
07-Nov-2011 17:40:43 org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive browser.war
07-Nov-2011 17:40:43 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
07-Nov-2011 17:40:43 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
07-Nov-2011 17:40:43 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
07-Nov-2011 17:40:43 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
07-Nov-2011 17:40:43 org.apache.coyote.http11.Http11Protocol start
SEVERE: Error starting endpoint
java.net.BindException: Address already in use <null>:8080
        at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:549)
        at org.apache.tomcat.util.net.JIoEndpoint.start(JIoEndpoint.java:565)
        at org.apache.coyote.http11.Http11Protocol.start(Http11Protocol.java:203)
        at org.apache.catalina.connector.Connector.start(Connector.java:1095)
        at org.apache.catalina.core.StandardService.start(StandardService.java:540)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
        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.start(Bootstrap.java:289)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.net.BindException: Address already in use
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:336)
        at java.net.ServerSocket.bind(ServerSocket.java:336)
        at java.net.ServerSocket.<init>(ServerSocket.java:202)
        at java.net.ServerSocket.<init>(ServerSocket.java:158)
        at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:50)
        at org.apache.tomcat.util.net.JIoEndpoint.init(JIoEndpoint.java:538)
        ... 12 more
07-Nov-2011 17:40:43 org.apache.catalina.core.StandardService start
SEVERE: Failed to start connector [Connector[HTTP/1.1-8080]]
LifecycleException:  service.getName(): "Catalina";  Protocol handler start failed: java.net.BindException: Address already in use <null>:8080
        at org.apache.catalina.connector.Connector.start(Connector.java:1102)
        at org.apache.catalina.core.StandardService.start(StandardService.java:540)
        at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
        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.start(Bootstrap.java:289)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
07-Nov-2011 17:40:43 org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8443
07-Nov-2011 17:40:43 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
07-Nov-2011 17:40:43 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/120  config=null
07-Nov-2011 17:40:43 org.apache.catalina.startup.Catalina start
INFO: Server startup in 2286 ms
07-Nov-2011 17:42:14 org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1 on http-8080
07-Nov-2011 17:42:14 org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1 on http-8080
07-Nov-2011 17:42:14 org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1 on http-8443
07-Nov-2011 17:42:15 org.apache.catalina.core.StandardService stop
INFO: Stopping service Catalina
07-Nov-2011 17:42:15 org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8080
07-Nov-2011 17:42:15 org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8080
07-Nov-2011 17:42:15 org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1 on http-8443

Я пробовал такие команды, как netstat -aon | grep 8080 Я пытался ps -efl | grep java и убивал этот процесс, используя kill <pid> 9 pkill java и так далее ...

Это то, что netstat -aon

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       Timer
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      off (0.00/0/0)
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      off (0.00/0/0)
tcp        0      0 10.226.122.156:22           109.58.56.15:49215          ESTABLISHED keepalive (5354.40/0/0)
tcp        0      0 :::80                       :::*                        LISTEN      off (0.00/0/0)
tcp        0      0 :::22                       :::*                        LISTEN      off (0.00/0/0)
udp        0      0 0.0.0.0:68                  0.0.0.0:*                               off (0.00/0/0)
udp        0      0 10.226.122.156:123          0.0.0.0:*                               off (0.00/0/0)
udp        0      0 127.0.0.1:123               0.0.0.0:*                               off (0.00/0/0)
udp        0      0 0.0.0.0:123                 0.0.0.0:*                               off (0.00/0/0)
udp        0      0 ::1:123                     :::*                                    off (0.00/0/0)
udp        0      0 fe80::1031:3cff:fe0:123     :::*                                    off (0.00/0/0)
udp        0      0 :::123                      :::*                                    off (0.00/0/0)
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node Path
unix  2      [ ACC ]     STREAM     LISTENING     2337   @/tmp/fam-root-
unix  2      [ ACC ]     STREAM     LISTENING     409    @/com/ubuntu/upstart
unix  2      [ ]         DGRAM                    644    @/org/kernel/udev/udevd
unix  8      [ ]         DGRAM                    1513   /dev/log
unix  3      [ ]         STREAM     CONNECTED     38302
unix  3      [ ]         STREAM     CONNECTED     38301
unix  2      [ ]         DGRAM                    38297
unix  2      [ ]         DGRAM                    22149
unix  3      [ ]         STREAM     CONNECTED     2340   @/tmp/fam-root-
unix  3      [ ]         STREAM     CONNECTED     2339
unix  2      [ ]         DGRAM                    1998
unix  2      [ ]         DGRAM                    1918
unix  2      [ ]         DGRAM                    1895
unix  2      [ ]         DGRAM                    1819
unix  3      [ ]         DGRAM                    648
unix  3      [ ]         DGRAM                    647

Любые мысли илиуказатели?

Ответы [ 12 ]

24 голосов
/ 11 января 2013

У меня тоже была такая же проблема. Перепробовал все варианты, предложенные в этой теме. Но не помогло. Тогда просто побежал:

ps -awwef | grep tomcat

и обнаружил, что запущен какой-то устаревший процесс. Я убил его, используя (-15 вместо -9)

sudo kill -15 <tomcat pid from previous command>

И вот! это сработало. Перезапущенный кот без проблем.

15 голосов
/ 08 ноября 2011

НИКОГДА не уничтожайте процесс с сигналом -9, потому что этот тип процесса удаления оставляет свои ресурсы в системе, которые могут быть удалены только после перезагрузки сервера. используйте только kill -9 только в крайнем случае. лучше использовать kill -15, так как для очистки ресурсов может потребоваться некоторое время, но вы всегда получите правильную очистку всего набора ресурсов, который потребляет процесс. так что, скорее всего, кот не работает, так как он оставил некоторые ресурсы в памяти. Итак, либо выполните перезагрузку, либо попробуйте найти следующее:

  • через команду lsof и выполните команду grep с помощью tomcat. он покажет вам все, что связано с котом

lsof | grep tomcat

  • поиск любого файла блокировки pid в файловой системе, оставленного tomcat.
  • Также попробуйте выдать:

lsof -i TCP | grep 8080

9 голосов
/ 05 августа 2012

Простого запуска lsof может быть недостаточно. Я предлагаю эту команду:

sudo lsof -i :8080

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

9 голосов
/ 07 ноября 2011

Номер порта настроен в $ TOMCAT_HOME / conf / server.xml

Если порт 8080 используется, измените его в файле server.xml. Мой выглядит так в server.xml

<Connector port="8085" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />
4 голосов
/ 16 мая 2013

Только для справки: я получил эту ошибку (как новичок), потому что я запустил Apache перед запуском Tomcat.

Если я остановил Apache, затем запустил Tomcat, а затем запустил Apache, ошибки исчезли.

2 голосов
/ 23 февраля 2016

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

Причиной, по которой tomcat некорректно не выключался или не запускался, была JDK-версия источника приложения: я собрал его с JDK 1.8, но на моем сервере было 1.7. После перестройки моего приложения с использованием JDK 1.7 оно работало как на локальном, так и на серверном компьютере. Надеюсь, эта информация также помогает кому-то вроде меня.

2 голосов
/ 06 марта 2014

После ввода netstat -aon найдите PID для порта 8080.Затем перейдите в диспетчер задач и найдите имя изображения для PID на вкладке процессов.щелкните правой кнопкой мыши на имени изображения и нажмите на конец процесса.Теперь, если вы запустите сервер, он будет работать.

1 голос
/ 04 февраля 2013

Проблема в том, что tomcat не может быть корректно выключен. попробуйте добавить сон в сценарий перезапуска или просто подождите немного, чтобы снова запустить tomcat.

1 голос
/ 09 марта 2012

Иногда сервлеты должны выполнить значительный объем работы, чтобы завершить работу, и в результате tomcat может также потребоваться некоторое время для завершения работы. Если вы немного подождете, прежде чем перезапускать сервер, проблема может исчезнуть. Если нет, то возможно, что веб-приложение не отвечает на сигналы завершения от JVM, и в этом случае tomcat может некорректно завершить работу.

Короче говоря, попробуйте добавить сон в сценарий перезапуска или просто немного подождите, прежде чем снова вызывать start.

0 голосов
/ 04 февраля 2018

Я столкнулся с подобной проблемой и обнаружил, что порт 8080 используется для какого-то другого приложения. используйте netstat commnad в Windows и посмотрите все используемые порты.

изменить порт соединителя в файле server.xml. Вы можете найти этот файл в каталоге установки tomcat в папке conf . откройте этот файл, мой выглядел как показано ниже:

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />

изменить значение порта на какой-либо другой порт, предпочтительно в серии 80. надеюсь, что это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...