it-swarm.com.ru

Ошибка развертывания: сбой при запуске Tomcat, порт сервера 8080 уже используется

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

Deployment error:
Starting of Tomcat failed, the server port 8080 is already in use.
See the server log for details.
        at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.Java:166)
        at org.netbeans.modules.j2ee.ant.Deploy.execute(Deploy.Java:104)
        at org.Apache.tools.ant.UnknownElement.execute(UnknownElement.Java:288)
        at Sun.reflect.GeneratedMethodAccessor619.invoke(Unknown Source)
        at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:25)
        at Java.lang.reflect.Method.invoke(Method.Java:597)
        at org.Apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.Java:105)
        at org.Apache.tools.ant.Task.perform(Task.Java:348)
        at org.Apache.tools.ant.Target.execute(Target.Java:357)
        at org.Apache.tools.ant.Target.performTasks(Target.Java:385)
        at org.Apache.tools.ant.Project.executeSortedTargets(Project.Java:1329)
        at org.Apache.tools.ant.Project.executeTarget(Project.Java:1298)
        at org.Apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.Java:41)
        at org.Apache.tools.ant.Project.executeTargets(Project.Java:1181)
        at org.Apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.Java:277)
        at org.Apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.Java:460)
        at org.netbeans.core.execution.RunClassThread.run(RunClassThread.Java:151)
Caused by: org.netbeans.modules.j2ee.deployment.impl.ServerException: Starting of Tomcat failed, the server port 8080 is already in use.
        at org.netbeans.modules.j2ee.deployment.impl.ServerInstance._start(ServerInstance.Java:1297)
        at org.netbeans.modules.j2ee.deployment.impl.ServerInstance.startTarget(ServerInstance.Java:1251)
        at org.netbeans.modules.j2ee.deployment.impl.ServerInstance.startTarget(ServerInstance.Java:1062)
        at org.netbeans.modules.j2ee.deployment.impl.ServerInstance.start(ServerInstance.Java:939)
        at org.netbeans.modules.j2ee.deployment.impl.TargetServer.startTargets(TargetServer.Java:428)
        at org.netbeans.modules.j2ee.deployment.devmodules.api.Deployment.deploy(Deployment.Java:143)
        ... 16 more
BUILD FAILED (total time: 4 seconds)

Я попытался изменить порт сервера на 8081 и отключить порт в инструмент-> сервер. Он работает нормально, но снова, если я выполняю какие-либо операции и запускаю проект, он говорит: « Ошибка развертывания: сбой при запуске Tomcat, порт сервера 8081 уже используется »

В чем будет проблема?

35
user660450

перейти к командной строке 

netstat -aon

для Linux

netstat -tulpn | grep 'your_port_number'

это покажет вам что-то вроде

 TCP    192.1.200.48:2053      24.43.246.60:443       ESTABLISHED     248
 TCP    192.1.200.48:2055      24.43.246.60:443       ESTABLISHED     248
 TCP    192.1.200.48:2126      213.146.189.201:12350  ESTABLISHED     1308
 TCP    192.1.200.48:3918      192.1.200.2:8073       ESTABLISHED     1504
 TCP    192.1.200.48:3975      192.1.200.11:49892     TIME_WAIT       0
 TCP    192.1.200.48:3976      192.1.200.11:49892     TIME_WAIT       0
 TCP    192.1.200.48:4039      209.85.153.100:80      ESTABLISHED     248
 TCP    192.1.200.48:8080      209.85.153.100:80      ESTABLISHED     248

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

Linux: 

kill -9 248

Окна: 

taskkill /f /pid 248

это убьет этот процесс

101
Jigar Joshi

Если вы находитесь за прокси-сервером, эта проблема может возникнуть. У меня была такая же проблема, и она была решена с помощью: Настройки -> Общие -> Настройки прокси -> Нет прокси.

«Возможно, сообщение о готовности Tomcat было отправлено прокси-серверу - и никогда не доходило до IDE».

найдено @: https://netbeans.org/bugzilla/show_bug.cgi?id=231220

9
Mohamed Elwy

У меня возникла та же проблема при попытке развертывания, Tomcat не удалось перезапустить во время работы экземпляра Tomcat. Закройте IDE и проверьте TASk Manager - убейте все запущенные процессы javaw, которые решили проблему для меня.

6
Adi

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

4
iSkriD

Изменяя настройки прокси на «нет прокси» в NetBeans, проблема Tomcat была решена. Попробуйте это серьезно.

3
surya

Если в Linux вы можете убить существующих Tomcats с помощью этого скрипта

#/bin/bash
if [ `whoami` != root ]; then
    echo "Please run this script as root or using Sudo"
    exit
fi
echo
echo "finding proceses that have name Java and established connections status"
echo
echo "Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name"
netstat --tcp  --programs  | grep "ESTABLISHED" | grep "Java"
echo
echo "finding proceses that use port 8080 or http-alt"
echo
netstat --tcp --programs | grep ':8080\|:http-alt'
echo -n "Do you wish to kill a process listed above?[Y/n]"
read choose
if [ "$choose" = "Y" ] || [ "$choose" = "y" ] || [ -z "$choose" ]
then
echo "enter pid to kill"
read procesId
kill -9 $procesId
fi
echo "done exiting"
exit 0
3
nkvnkv

Убейте предыдущий экземпляр Tomcat или процесс, запущенный на 8080.

Перейти к терминалу и сделать это:

lsof -i :8080

Вывод будет примерно таким:

COMMAND   PID   USER      FD   TYPE  DEVICE SIZE/OFF NODE NAME
Java    76746   YourName  57u  IPv6 0xd2a83c9c1e75      0t0    TCP *:http-alt (LISTEN)

Убейте этот процесс, используя его PID:

kill 76746

2
Balaji Dubey

Выберите проект -> Щелкните правой кнопкой мыши -> очистите и соберите , а затем снова запустите проект, просто решите проблему для меня. 

Так как несколько процессов могут связывать один и тот же порт, например, порт 8086. В этом случае мне нужно уничтожить все процессы, связанные с портом, с помощью PID. Это может быть громоздким. 

1
W.Jack

Измените порт по умолчанию в [Tomcat_home_dir] /conf/server.xml Find 

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

измените это на

<Connector port="8090" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
0
y.hussain

Я решил это, заменив Tomcat 8.5. * На Tomcat 7.0. * version.

0
shivaji bhosale

Измените свой адрес порта Tomcat на 8084 и Shut Down Port на 8025. Это решит вашу проблему.

В других случаях антивирусные программы могут вызвать проблемы. У меня была эта проблема с полной безопасностью K7. В моем случае K7 Firewall блокировал порт 8084. Простое решение - добавить исключение в Netbeans в списке межсетевого экрана K7.

Для этого откройте K7 и перейдите Настройки -> Настройки брандмауэра -> выберите Приложения вкладка и найдите Netbeans. 

Выберите Netbeans и нажмите на ссылку edit. На следующем экране выберите Предоставить полный доступ к сети переключатель. 

Теперь зайдите в NetBeans и запустите сервер. 

0
Shashanth