Podczas próby uruchomienia prostego programu JSP na Tomcat w środowisku Eclipse pojawia się następujący błąd.
Kilka portów (8005, 8080, 8009) wymaganych przez serwer Tomcat v6.0 na localhost jest już używanych. Serwer może już działać w innym procesie lub proces systemowy może korzystać z portu. Aby uruchomić ten serwer, musisz przerwać inny proces lub zmienić numer (y) portu.
Jak to jest spowodowane i jak mogę to rozwiązać?
netstat -ano | findStr 8080
znaleźć uruchomione usługi, a następnie znaleźć identyfikator procesu, skopiować identyfikator pid i ponownie uruchomić polecenie jakotaskkill /F /PID pid_number
Odpowiedzi:
Masz już uruchomioną inną instancję Tomcat. Możesz to potwierdzić, przechodząc do
http://localhost:8080
przeglądarki internetowej i sprawdzając, czy masz domyślną stronę główną Tomcat, czy stronę błędu 404 specyficzną dla Tomcat. Oba są równie ważnym dowodem na to, że Tomcat działa dobrze; jeśli tak się nie stanie, otrzymasz komunikat o błędzie przekroczenia limitu czasu połączenia HTTP.Musisz go zamknąć. Przejdź do
/bin
podfolderu folderu instalacyjnego Tomcat i uruchom skryptshutdown.bat
(Windows) lubshutdown.sh
(Unix). Jeśli na próżno zamknij Eclipse, a następnie otwórz menedżera zadań i zabij wszystkojava
i / lubjavaw
procesy.Lub jeśli z jakiegoś powodu faktycznie zainstalowałeś go jako usługę Windows (jest to przeznaczone głównie do produkcji i nie jest pomocne, gdy dopiero się rozwijasz), otwórz menedżera usług ( Start> Uruchom> services.msc ) i zatrzymaj usługę Tomcat. Jeśli to konieczne, całkowicie odinstaluj usługę Windows. Do programowania wystarczy plik ZIP.
Lub jeśli faktycznie zamierzasz uruchomić jednocześnie dwie instancje Tomcat, musisz skonfigurować drugą instancję, aby nasłuchiwała na różnych portach. Więcej informacji można znaleźć w dokumentacji Tomcat.
źródło
sh shutdown.sh
w terminalu w katalogu / bin.shutdown.bat
w moim folderze bin. Tomcat został zainstalowany jako usługa, a nie jako zip. Zatrzymanie usługi tomcat w usługach rozwiązało problem. Dzięki. Chenqui.system monitor
lubtask manager
zabicie procesu Java, który używaabout 400 MB
lub więcejRAM
, również rozwiąże problem. Nieświadomie rezerwuje proces.źródło
kill $(ps -aef | grep java | grep apache | awk '{print $2}')
kill
polecenia.Jeśli korzystasz z systemu Windows, wypróbuj to w wierszu polecenia:
Spowoduje to wyświetlenie wszystkich używanych portów i identyfikatora procesu PID # procesu korzystającego z tego portu. Następnie Ctrl+ Alt+ Deli otwórz Menedżera zadań, aby zobaczyć, który to proces.
Następnie możesz wybrać zamknięcie / zatrzymanie go lub skonfigurowanie serwera do korzystania z innego portu. Aby sprawdzić, czy nowy wybrany port (powiedzmy 8010) jest dostępny, wykonaj następujące czynności:
Jeśli nie zwróci żadnych wierszy, wszystko jest w porządku.
Aby zmienić port, przejdź do widoku Serwer, otwórz server.xml i zmień tam port. Mój ma ten wpis:
źródło
findstr
dla tych bez grepa.Jeśli pracujesz w środowisku Mac, oto co zrobiłem.
Znajdź identyfikator procesu działający na tym porcie z terminala, np. 8080:
i zabij to:
Przykład:
Może zostać wyświetlony następujący wynik:
i zabij to: (
kill -9 21347
)źródło
Kroki do zwolnienia portu, który jest już używany do uruchamiania serwera tomcat w Eclipse
Załóżmy na przykład, że używany jest port 8080, musimy zrobić wolne 8080, aby uruchomić tomcat
Krok 1:
C: \ Users \ nazwa użytkownika> netstat -o -n -a | findstr 0.0: 8080
TCP 0.0.0.0:3000 0.0.0.0:0 LISTENING 3116
Teraz widzimy, że port LISTENING to 3116 dla 8080,
Musimy teraz zabić 3116
Krok 2:-
C: \ Users \ nazwa użytkownika> taskkill / F / PID 3116
Krok 3: Przejdź do Eclipse i uruchom Serwer, uruchomi się
źródło
Jeśli używasz Eclipse, kliknij dwukrotnie serwery i kliknij dwukrotnie serwer tomcat, a następnie otworzy się jeden plik. W tym pliku zmień port HTTP na inny numer portu i zapisz ( Ctrl+ S), a następnie ponownie uruchom serwer.
źródło
Jeśli Eclipse mówi
Ten błąd pojawia się, ponieważ tomcat może działać w tle, więc najpierw zatrzymaj ten serwer ... postępuj zgodnie z poniższymi szczegółami.
Rozwiązaniem jest:
Dzięki!
źródło
Nie mam innej instancji Tomcat z uruchomioną reklamą ani żadnego innego procesu używającego „portu Tomcat” (w moim przypadku portu 8088). Zaćmienie wysyłają tę samą wiadomość po uruchomieniu Tomcat:
.... Serwer może już działać w innym procesie lub proces systemowy może korzystać z portu. Aby uruchomić ten serwer, musisz przerwać inny proces lub zmienić numer (y) portu.
Rozwiązuję problem w ten sposób:
źródło
Co zrobiłem po przeczytaniu wszystkich sugerowanych odpowiedzi i jak wiem, mój port był już w użyciu. Dwukrotnie kliknąłem Tomcat w zakładce Serwery w Zaćmieniu. Otworzyłem informacje ogólne, a następnie znalazłem informacje o porcie. Właśnie zmieniłem port powodujący konflikt, ponieważ mój był portem 8009 (błąd wspomniany podczas uruchamiania serwera). Zmieniłem go na 8008 i działa dobrze. Spróbuj, jeśli zmieniony port nie będzie używany, serwer się uruchomi.
źródło
Krok 1: netstat -a -o -n spowoduje wyświetlenie listy sieci, poszukiwanie lokalnego adresu, takiego jak 127.0.0.1:8080 i zanotowanie PID (eq 3624)
Krok 2: Taskkill / F / PID 3624 . Uruchom to polecenie, aby zabić ten proces.
link do wpisu
źródło
W systemie Windows użyj polecenia do zatrzymania już uruchomionej instancji tomcat i spróbuj uruchomić ją ponownie w środowisku Eclipse, może działać.
Lub możesz zmienić port w kodzie XML serwera, jeśli chcesz uruchomić na innych portach.
źródło
Prosty sposób na rozwiązanie problemu:
Serwer może już działać w innym procesie lub proces systemowy może korzystać z portu. Aby zabić ten port, wykonaj następujące czynności:
1) Pobierz TCPView (tylko 285kb) z następującego linku.
http://technet.microsoft.com/en-in/sysinternals/bb897437.aspx
2) Wyodrębnij folder i uruchom aplikację TCPView .
3) Kliknij prawym przyciskiem myszy na java.exe (bo 8009,8005 porty są powszechnie używane przez proces Java) i wybierz Zakończ proces opcji.
to z łatwością zatrzymałoby kolejny proces.
UWAGA : Uruchomienie TOMCATPATH / bin / shutdown.bat może nie zamknąć Tomcat, gdy zawiera on demon lub niezarządzane wątki. W takich przypadkach TCPView działa poprawnie bez żadnych problemów.
źródło
Jeśli jesteś w środowisku Java EE prospektywnym w środowisku Eclipse i próbujesz uruchomić serwer Tomcat w środowisku Eclipse w trybie debugowania, otrzymasz takie błędy. Musisz przełączyć się na potencjalny debugowanie w Eclipse. Tak rozwiązałem mój problem.
źródło
Czasami, jeśli porty nie zostaną zwolnione nawet po próbie zamknięcia systemu. Niezależnie od sugestii @BalusC, możesz zabić proces javaw. Wykonaj następujące czynności:
Wpisz polecenie ps. Możesz zobaczyć obraz w następujący sposób:
Zobacz numer procesu „javaw”. Numer procesu jest liczbą najbardziej po prawej stronie w kolumnach, na przykład podświetliłem na obrazie numer procesu javaw.
Wpisz polecenie kill. javaw został zabity i teraz musisz mieć możliwość uruchomienia programu.
źródło
Oto jeszcze jedna opcja do wypróbowania, jeśli żaden z powyższych wysiłków nie pomógł. Być może korzystasz z Eclipse ze wspólnego dysku (na przykład H :) . Jeśli tak, przenieś / skopiuj cały katalog Eclipse do C: i spróbuj ponownie.
Moje Eclipse nie mogło otworzyć portów dla serwera Tomcat (z powyższym błędem), ani nawet połączyć się z Internetem. Próbowałem też innej wtyczki Tomcat (Sysdeo), która również nie otworzyła portów.
Oto opcje, które wypróbowałem:
Sprawdź i zabij inne wystąpienia Tomcat
netstat -ano
i sprawdź, czy inne procesy używają portów będących w konflikcie.Zmień porty Tomcat w Eclipse
Zabij java.exe i javaw
Zobacz moją drugą odpowiedź dotyczącą braku połączenia Eclipse z Internetem ( https://stackoverflow.com/a/37246087/4212710 ).
źródło
Dla użytkowników systemu Windows:
Przejdź bezpośrednio do Menedżera zadań za pomocą kombinacji klawiszy CTRL + SHIFT + ESC.
Zabij procesy „java.exe”, klikając prawym przyciskiem myszy i wybierając „Zakończ zadanie”.
źródło
Sprawdziłem wszystkie odpowiedzi, ale
informing only to kill PID
.W przypadku, gdy wszyscy mają dostęp do terminala, to nie pomoże, a może nie masz pozwolenia na zabicie PID .
W takim przypadku możesz:
Double click on server
Go to Overview and change ports in Ports
lubię to:źródło
Prostszą poprawką, która działa dla mnie, jest usunięcie moich aktualnie wdrożonych aplikacji internetowych z tomcat poprzez zakładkę „Serwer”. Po ich usunięciu problem zniknie. Wystarczy ponownie wdrożyć projekt, uruchamiając polecenie Uruchom jako> Uruchom na serwerze.
źródło
Problem często pojawia się, gdy Apache Tomcat nie kończy się poprawnie, nawet jeśli wysłano instrukcję zamknięcia. W moim przypadku przy użyciu Tomcat 8 dzieje się to z irytującą regularnością. Na szczęście możesz użyć programu Windows PowerShell i
netstat
polecenia, aby utworzyć prosty skrypt, aby zabić proces.Poniższy skrypt programu PowerShell przeanalizuje dane wyjściowe,
netstat
aby znaleźć proces nasłuchujący127.0.0.1:8005
, wyodrębnić jego identyfikator PID, a następnie zabić ten proces:Jeśli
server.xml
konfigurujesz Tomcat do używania innego portu lub adresu IP, odpowiednio zmodyfikuj wyrażenie regularne w czwartym wierszu skryptu.Na koniec powinienem zauważyć, że sytuacja jest lepsza w systemie Linux, ponieważ możesz poinstruować Tomcat, aby zapisał swój PID w pliku podczas uruchamiania i użył przełącznika, aby wymusić zamknięcie, później - skrypt zamykania dla systemów 'nix już zawiera umiejętność zabicia procesu i praca z tandetą
netstat
nie jest wymagana.źródło
Jeśli powyższy problem występuje w systemie operacyjnym Windows 7 lub 10, problem występuje, ponieważ Tomcat działa jako usługa systemu Windows. Aby zatrzymać Tomcat jako usługi Windows, otwórz Panel sterowania Windows. Znajdź usługę „Apache Tomcat” i zatrzymaj ją. Innym sposobem jest zabicie procesu działającego na porcie 8080 przy użyciu cmd.
Otwórz cmd, uruchamiając go jako administrator.
C: \ users \ nazwa użytkownika> taskkill / F / PID 2160
źródło
Przyczyną może być nieprawidłowe zatrzymywanie usługi tomcat. Aby to zrobić, otwórz menedżera zadań, tam możesz zobaczyć
javaw.exe
usługę. Najpierw zatrzymaj tę usługę. Teraz uruchom ponownie kocura, działa dobrze.źródło
W moim przypadku pojawił się błąd: Port 8005 wymagany przez serwer Tomcat v8.0 na localhost jest już w użyciu
Zmieniłem port 8005 w apache-tomcat-8.0.39 \ conf \ server.xml, ale zmiany nie zostały odzwierciedlone. Potem zrobiłem te zmiany od zaćmienia. klikając dwukrotnie serwer i modyfikując port z 8005 na 8006 i działa.
Przed umieszczeniem 8006 sprawdziłem w powłoce systemu Windows, czy ten port jest dostępny, czy nie. Wykonując następujące polecenie:
źródło
Mam ten sam problem i po wyszukaniu odpowiedzi, jak pokazano poniżej: 1. otwórz Monitor Tomcat, jak pokazano poniżej:
Wreszcie działa ze mną po wielu próbach i sugerowanych rozwiązaniach.
Z pozdrowieniami, Kerelos Michaił
źródło
Na Eclipse wykonaj surowe usunięcie folderu konfiguracji Tomcat w ramach projektu „Serwery”. Wypróbowałem to jako ostatnią nadzieję i zadziałało.
źródło
W przypadku systemu Windows doświadczyłem nowych rzeczy ... zatrzymanie tomcat z folderu / bin nie spowoduje natychmiastowego zwolnienia portu 8080. Uwolnienie portu zajmuje około 5-10 minut. Po 10 minutach ponownie, jeśli spróbuję uruchomić mój projekt Uruchom-> Uruchom na serwerze .. pozwala to uruchomić.
Nie jestem pewien, czy moje rozumowanie jest prawidłowe!
źródło
Zapoznaj się z poniższym blogiem „jak zabić tomcat bez konieczności ponownego uruchamiania komputera”
http://stanicblog.blogspot.fr/2012/01/how-to-kill-apache-tomcat-without.html
Mam nadzieję, że to pomoże komuś w przyszłości.
źródło
Występuje, gdy inni w projekcie również używają tych samych numerów portów, co Ty! kliknij dwukrotnie serwer tomcat, zmień numery portów na 8585 lub cokolwiek innego. Kod zacznie teraz działać!
źródło
Jak zabić usługę Windows za pomocą PID -
netstat -ano
taskkill /f /pid 5760
Dzięki
zabij usługę Windows, która utknęła podczas zatrzymywania lub uruchamiania
źródło
Aby sprawdzić, czy inna instancja Tomcat jest już uruchomiona lub jakiś inny proces korzysta z portów, których możesz użyć:
Możesz dostać coś takiego:
Otwórz menedżera zadań Ctrl+ Shift+ Esci zabij
Tomcat7.exe
lub dowolny inny proces korzystający z tych portów.źródło
Twój Tomcat prawdopodobnie już działa. Właśnie dlatego masz błąd. Miałem wcześniej ten sam problem. Rozwiązałem to bardzo prosto:
To wszystko.
źródło