„Serwer Tomcat v7.0 Serwer na hoście lokalnym nie został uruchomiony” bez śladu stosu, gdy działa w terminalu

81

Więc dostałem ten projekt, który działał dobrze przed weekendem (mam inne problemy, ale przynajmniej Tomcat wystartował). Teraz, gdy próbuję uruchomić serwer Tomcat, natychmiast wyświetla następujący błąd:

Server Tomcat v7.0 Server at localhost failed to start.

Mogę jednak dobrze uruchomić Tomcata przez terminal, a ten problem występuje w Eclipse ( Eclipse Java EE IDE dla programistów WWW. Wersja: Juno Service Release 1 Build id: 20121004-1855 )

Przeszukałem kilka forów, próbując znaleźć rozwiązanie, ale bezskutecznie! Proszę, pomóż komuś w potrzebie.

Marvin Effing
źródło
opublikować pełny błąd śledzenia stosu?
Ami
@ILLA nie ma żadnego. Tylko to. Co jest w tym najdziwniejsze ...
Marvin Effing
Ładne pytanie, najdziwniejszy błąd, jaki kiedykolwiek napotkałem. Mime wydarzyło się w Fedorze 17. Zaćmienie jest pobierane z repozytorium Fedory.
huahsin68
Rozwiązany przez usunięcie określonego folderu w folderze Serwery, usunięcie serwera w Eclipse, a następnie utworzenie nowego serwera w Eclipse (karta Serwer)
CodyBugstein
4
Jest to jeden z częstych problemów, z którymi boryka się programista, z mojego doświadczenia mogę powiedzieć, że w większości przypadków błąd jest spowodowany plikiem web.xml. Spróbuj usunąć kilka nowo utworzonych tagów serwletów i mapowań serwletów.
Prateek Joshi

Odpowiedzi:

58

Aby rozwiązać ten problem, musisz usunąć .snapplik znajdujący się w katalogu:

<workspace-directory>\.metadata\.plugins\org.eclipse.core.resources

Po usunięciu tego pliku można było bez problemu uruchomić Eclipse.

Jestem
źródło
33
proszę, gdzie jest ten plik? nie mam takiego pliku
William Kinaan
18
W tym katalogu nie ma takiego pliku.
MrYo
34
@MarvinEffing Usunąłem ten plik, ale to mi nie pomogło!
Lrrr
1
To zadziałało dla mnie, ale czy możesz wyjaśnić, dlaczego zadziałało? Co to za plik? Dlaczego powoduje błąd? Również dla osób, które nie widzą pliku: spróbuj ponownie uruchomić zaćmienie, to właśnie musiałem zrobić.
Kevin Workman,
1
Po usunięciu pliku snap (był to 0.snap) przeszedłem do zaćmienia, kliknąłem prawym przyciskiem serwer i wybrałem Wyczyść. Następnie uruchom serwer i będzie działać.
sunlover3
104
  1. Otwórz zakładkę Serwery z menu Windows → Pokaż widok → Serwery

  2. Kliknij prawym przyciskiem myszy serwer i usuń go

  3. Utwórz nowy serwer, przechodząc do Nowy → Serwer na karcie Serwer

  4. Kliknij łącze „Konfiguruj środowiska wykonawcze…”

  5. Wybierz serwer Apache Tomcat v7.0 i usuń go. Spowoduje to usunięcie konfiguracji serwera Tomcat. W tym miejscu wiele osób popełnia błąd - usuwają serwer, ale nie usuwają środowiska Runtime.

  6. Kliknij OK i zamknij ekran powyżej.

  7. Z poniższego ekranu wybierz serwer Apache Tomcat v7.0 i kliknij przycisk Dalej.

  8. Przejdź do katalogu instalacyjnego Tomcat

  9. Kliknij Dalej i wybierz projekt, który chcesz wdrożyć:

  10. Kliknij Zakończ po dodaniu projektu

  11. Teraz uruchom serwer. Naprawi to przekroczenie limitu czasu serwera lub wszelkie problemy ze starą konfiguracją serwera. To rozwiązanie może być również użyte do naprawienia problemów z „brakiem aktualizacji portu”.

chandrsekar.LS
źródło
12
niestety nic to nie rozwiązuje ... Eclipse Kepler, Windows 7 32 bit, Tomcat 7 ... wciąż szukam prawdziwego rozwiązania
Miklos Krivan
2
Usunąłem konfigurację tomcat z zaćmienia i ponownie dodaję serwer. Pracował dla mnie. Eclipse Juno.
user2771655
1
Wielkie dzięki, stary! SO usunięcie środowiska wykonawczego spowodowało, że Tric?
Rahal Kanishka
1
jak powiedział @MiklosKrivan - dla mnie to też nie działa, ale jestem jednak ciekawy, dlaczego i jak to do diabła działa dla innych, a z kolei zainteresowany, dlaczego tak nie jest dla mnie.
Nightfury
37

Aby rozwiązać ten problem, musisz usunąć folder tmp z następującego katalogu

<workspace-directory>\.metadata\.plugins\org.eclipse.wst.server.core

Jeśli wystąpi jakiś problem z usunięciem tego folderu, uruchom ponownie zaćmienie, a następnie ponownie usuń ten folder.

jaideep
źródło
Nie widzę nazwy folderu folder. Gdzie to jest? Używam ubuntu 12.04
MMMMS
@MMMMS, ukryte pliki i katalogi są poprzedzone kropką. W większości systemów * nix możesz przeszukiwać takie pliki i katalogi za pomocą ls -a
FRK
22

W moim przypadku problem xmltkwił jakoś w kodzie.

Mój web.xmlplik wyglądał następująco:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Archetype Created Web Application</display-name>

    <servlet>
        <servlet-name>index</servlet-name>
        <jsp-file>index.jsp</jsp-file>
    </servlet>

    <servlet-mapping>
        <servlet-name>index</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

ale zmieniłem to, aby wyglądało

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Archetype Created Web Application</display-name>

</web-app>

a teraz serwer ładuje się poprawnie. Dziwne.

CodyBugstein
źródło
2
Miałem podobny problem z @WevServletadnotacją z niewłaściwą ścieżką.
thomas88wp
2
dokładnie @ thomas88wp, albo używasz adnotacji @WebServleti usuwasz mapowanie serwletu, albo odwrotnie. dziękuję rozwiązałeś mój problem :)
L.Zaki
Dziękuję Ci! Chwytałem się za głowę, ale to pomogło!
Shivangi Gupta
15

Serwer Tomcat v7.0 Serwer na hoście lokalnym nie został uruchomiony.

Ten błąd rozwiązuje następujące trzy przypadki

1. Wyczyść projekt i serwer

Lub

2. Usuń plik .snap z tego katalogu

<workspace-directory>\.metadata\.plugins\org.eclipse.core.resources

Lub

3. Usuń plik tymczasowy z tego katalogu

<workspace-directory>\.metadata\.plugins\org.eclipse.wst.server.core

źródło
1
Usunąłem folder tymczasowy i teraz serwer uruchamia się pomyślnie, ale nie działa na nim moja aplikacja internetowa.
Rahul Munjal
Pracowałem dla mnie na Ubuntu 18.04 z Eclipse 2019-03 i Tomcat 8.5.43 :)
yanike
Kliknij prawym przyciskiem myszy Tomcat i Clean
Chinmoy
13

Napotkałem ten problem, ponieważ zdefiniowałem mapowanie serwletów w klasie servlet i web.xml.

Musisz uważać, aby sprawdzić, czy zdefiniowano odwzorowanie serwletu w swojej klasie serwletu i pliku web.xml

1) usuń @WebServlet("...")

@WebServlet("/Login")
public class Login extends HttpServlet {
}

LUB

2) usunąć <servlet></servlet> <servlet-mapping></servlet-mapping>

<servlet>
    <servlet-name>ServletLogin</servlet-name>
    <servlet-class>Login</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>ServletLogin</servlet-name>
    <url-pattern>/login</url-pattern>
</servlet-mapping>

Powód:

Używam apache tomcat 7.0, który obsługuje serwlet 3.0.

W przypadku adnotacji Java EE standardowym deskryptorem wdrażania web.xml jest

opcjonalny. Zgodnie ze specyfikacją serwletu 3.0 pod adresem

http://jcp.org/en/jsr/detail?id=315

C0de8ug
źródło
To jest na pewno to. Dwukrotnie mapowałem ten sam serwlet, ta poprawka zadziałała.
George
11

Żadna z powyższych odpowiedzi nie działała dla mnie. Używam Tomcat 9 w moim Eclipse IDE. Dlatego wypróbowałem następujące kroki na moim Eclipse Neon.

Krok # 1: Kliknij Serverskartę, aby zobaczyć swój serwer. W moim przypadku wygląda to następująco:

wprowadź opis obrazu tutaj

Krok # 2: Kliknij serwer prawym przyciskiem myszy, wybierzProperties , zobaczysz następujące okno. Kliknij Switch Location, zmieni lokalizację na pokazaną na poniższym obrazku z domyślnej, kliknij, Applya następnie, OKaby zamknąć okno.

wprowadź opis obrazu tutaj

Krok # 3 Kliknij dwukrotnie serwer Tomcat, który otworzy Overviewopcję, jak pokazano na poniższym obrazku. Server LocationsCzęść była aktywna dla mnie, gdy zrobiłem (nie jest to pokazane na obrazku nieaktywna, bo już to zrobił na moim koniec i mam mój serwer uruchomiony) i że wybrałem drugą opcję przycisk radiowy, który jest Use Tomcat installation (takes control of Tomcat installation). Następnie zamknąłem tę opcję, zapisałem zmiany po wyświetleniu monitu i uruchomiłem serwer. Zaczęło działać dobrze.

wprowadź opis obrazu tutaj

Jan
źródło
1
Wielkie dzięki, to jedyna opcja, która u mnie zadziałała!
Mike B.
To rozwiązało problem, dzięki stary. Zaskakujące jest, że rozwiązania, które naprawdę działają, otrzymują niewielką liczbę głosów.
Metoda naukowa
7

W moim przypadku problem był w pliku web.xml, w którym zapomniałem poprzedzić wzorzec adresu URL znakiem „/” (np. /Login.do).

To, co rozwiązało mój problem, to, jak wspomniał powyżej @ Ajak6, dodanie interfejsu API serwletu jako zewnętrznej biblioteki JAR dla projektu.

Jednak znalazłem lepszy sposób, dodając Tomcat do docelowego środowiska wykonawczego w następujący sposób;

1) projekt> właściwości

2) w bocznym menu wybierz „Docelowe środowiska wykonawcze”

3) wybierz Tomcat (kliknij zastosuj)

4) kliknij OK

Emad Abdelhamid
źródło
W moim przypadku działało dobrze z adnotacjami, ale kiedy dodałem konfiguracje serwletów w web.xml - zapomniałem wstawić / i mam ten problem. Na szczęście szybko to naprawiłem. Dzięki Emad!
ppalancica
6

Utworzenie nowego obszaru roboczego również może rozwiązać ten problem.

Vibhor Bhardwaj
źródło
32
byłoby to ucieczką przed nierozwiązaniem problemu.
Yauraw Gadav
1
Właściwie nie, ponieważ prawdopodobnie jest to coś w mapowaniu projektu.
George
6

otwórz plik web.xml. (jeśli nie wiesz, gdzie to jest, po prostu wygoogluj). jest tak:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
.
.
.
.
</web-app>

tuż pod <?xml version="1.0" encoding="UTF-8"?>linią dodaj tag <element>i zamknij go na samym dole </element>tagiem. Gotowe.

djangodude
źródło
Uruchomiono i zniknął błąd. Ale nie słucha. Do czego służy ten żywioł?
Yergalem
5

Miałem ten sam problem na moim serwerze Tomcat, ale kiedy sprawdzam głęboko, stwierdziłem, że dodaję nowy tag do mojego pliku web.xml, a serwer go nie akceptuje, więc sprawdź plik, czy nastąpiła jakakolwiek aktualizacja, a następnie uruchom ponownie Tomcata i będzie dobrze .

REDA
źródło
1
Pomyliłem między <servlet> i <servlet-mapping> w moim web.xml i otrzymałem ten błąd. Dzięki! Twoje rozwiązanie zadziałało dla mnie.
Aafreen Sheikh
1
ok, dobrze dla ciebie to też zadziałało i dla mnie, oczywiście, jeśli pomylisz się między nimi, serwer się nie uruchomi, ponieważ <servlet> zdefiniowany jako kontener i <servlet-mapping> Mapowanie z serwletem i adresem URL dla żądań http.
REDA
omg, nie mogę uwierzyć. Miałem ten sam problem. Dzięki stary, nie mogę ci powiedzieć, jak bardzo jestem ci wdzięczny.
Rakesh Yadav
3

Wszystko działało dobrze przez jedną sekundę, a następnie mój serwer zaczął wyświetlać ten błąd. Przeszedłem przez wszystkie wymienione tutaj odpowiedzi i zadziałało dla mnie to proste rozwiązanie:

Usunięcie serwera, a następnie skonfigurowanie nowego

Jeśli masz pewność, że nic nie zmieniłeś i właśnie wyskoczył błąd, NIE zaczynaj usuwać plików .snap ani innych plików tymczasowych. Takie postępowanie spowoduje tylko więcej problemów. A jeśli błąd wystąpił z powodu pewnych zmian wprowadzonych przez Ciebie, ten błąd na pewno będzie spowodowany błędami w pliku web.xml.

PS Zmiana obszaru roboczego nie przyniesie absolutnie nic dobrego, ponieważ jeśli problem tkwi w Twoim projekcie, będzie on nadal występował w nowej przestrzeni roboczej, kiedy zaimportujesz projekt!

user2851347
źródło
2

Spróbuj usunąć istniejący serwer Tomcat w konsoli serwera, jeśli nie masz konsoli, możesz przejść do "Pokaż widok -> serwer", a następnie usunąć serwer, klikając go prawym przyciskiem myszy. Dodaj nowy serwer, to na pewno ci pomoże.

chethan bhounsley g
źródło
Przeczytałem wszystkie komentarze .. to jedyna opcja, która u mnie zadziałała.
Vineela Thonupunuri
2

Miałem ten sam problem i żadna z odpowiedzi nie pomogła w mojej sprawie. Więc po kilku godzinach poszukiwań znalazłem rozwiązanie dla siebie i mam nadzieję, że pomoże to komuś innemu.

Jest to rozwiązanie dla każdego, kto otrzyma komunikat „Server Tomcat v7.0 Server at localhost nie został uruchomiony”. błąd po skonfigurowaniu serwera Tomcat w środowisku Eclipse i próbie uruchomienia na nim projektu.

Po skonfigurowaniu serwera Tomcat w eclipse musisz skopiować katalog "WEB-INF" z twojego tomcat. C: \ ...% TOMCAT_HOME% \ webapps \ ROOT i ich znajdziesz "WEB-INF", po prostu skopiuj i wklej go w swoim folderze WebContent w swoim projekcie eclipse (nadpisz plik web.xml).

Mam nadzieję że to pomoże.

ChicoDelaBarrio
źródło
2

w moim przypadku błąd polegał na tym, że nie można było znaleźć pliku servlet-api.jar. Nie wiem, dlaczego nagle zaczęło to powodować błąd. Ponieważ wcześniej działał bez problemu. Po podaniu pliku servlet-api.jar w opcji ścieżki budowania serwer został pomyślnie uruchomiony.

Ajak6
źródło
po wypróbowaniu wszystkich powyższych, to właściwie mnie poprowadziło. BYŁA NIEDOSTĘPNOŚĆ NIEKTÓRYCH ZALEŻNOŚCI
Młody Emil
2

W moim przypadku wdrożyłem folder tomcat (ten, w którym znajdują się wszystkie pliki) w innym miejscu.

Potem, kiedy uruchomiłem eclipse i próbowałem uruchomić swój projekt z jsp i serwletami, pojawił się ten sam błąd.

Wypróbowałem wszystkie odpowiedzi tutaj, ale nadal niczego to nie zmieniło. Rozwiązaniem dla mnie było umieszczenie wszystkich plików Tomcat JAR w bibliotece projektu w następujący sposób:

  1. Idź do Eclipse
  2. Kliknij prawym przyciskiem myszy projekt, nad którym pracujesz> Ścieżka budowania> Konfiguruj ścieżkę budowania ...> Biblioteki> Dodaj zewnętrzne pliki JAR
  3. wybierz wszystkie pliki JAR z Tomcat / bin i Tomcat / lib
  4. Wciśnij OK"

Teraz powinieneś znaleźć je w folderze Biblioteki swojego projektu i wtedy powinno działać.

Iwan Cuche
źródło
2

1-Przejdź do katalogu obszaru roboczego ».metadata» .plugins »folder org.eclipse.wst.server.core.

2- Usuń folder tmp.

3- Uruchom ponownie Eclipse IDE

fatma yakut
źródło
1

W moim obszarze roboczym zaćmienia problem został rozwiązany, wykonując poniższe czynności. Okno -> Preferencje -> Połączenia sieciowe -> Zmień „Aktywny dostawca” na „Bezpośredni” zamiast „Natywny”. Możesz spróbować.

Pijush
źródło
1

W ten weekend miałem podobny problem. Wypróbowałem wszystkie wyżej wymienione sztuczki, ale żadna z nich nie zadziałała. (Praca w Eclipse LUNA)

Następnie przeanalizowałem, że tuż przed utworzeniem określonego serwletu pomyślnie korzystałem z Apache Tomcat w wersji 7.0. Który był „RefreshServlet”, jak pokazano poniżej:

RefreshServlet.java

Tak, aby ćwiczyć serwlety, aby zrozumieć działanie „automatycznego odświeżania”. Kiedy usuwam ten serwlet z mojej aplikacji, działa dobrze, ale kiedy próbuję dodać i uruchomić ten serwlet, wyświetla ten sam błąd „Nie udało się uruchomić Apache Tomcat v7.0”

Nie wiem dlaczego, ale tylko usunięcie tego serwletu działa dobrze, gdybym mógł uruchomić resztę mojej aplikacji.

Tak więc moja podstawowa sugestia byłaby taka, że ​​jeśli nie działa żadna inna sztuczka, spróbuj usunąć jakikolwiek najnowszy serwlet lub jakąkolwiek klasę, którą właśnie utworzyłeś, zanim pojawi się ten błąd i może to zadziałać dobrze również dla reszty aplikacji.

Wszelkie dalsze wyjaśnienia będą mile widziane. Dzięki

NIKHIL CHAURASIA
źródło
1
Możliwe, że masz wiele serwletów nasłuchujących pod tym samym adresem URL, co spowoduje, że Tomcat nie uruchomi się.
alttag
1

Sprawdź swój deskryptor sieciowy (web.xml) lub w swoich serwletach (tam, gdzie dodajesz adnotacje, sprawdź coś takiego jak '@WebServlet ("/ nazwa_serwletu")' pod kątem jakichkolwiek duplikatów. Jeśli takowe, usuń je.

Mwangi Thiga
źródło
1

Naprawiłem ten problem, klikając prawym przyciskiem myszy serwer tomcat na karcie Serwer i klikając „Wyczyść katalog roboczy Tomcat”

Hafiz Hamza
źródło
1
To mi pomogłoServer Tomcat v8.5 Server at localhost failed to start.
Nipun Tharuksha
0

Możesz kliknąć prawym przyciskiem myszy apache-tomcat, wybrać właściwości, kliknąć Przywróć domyślne.

pkpk
źródło
0

W moim przypadku problem był spowodowany błędem składni w przekazywanych argumentach. Miałem spację między kluczem a wartością podczas używania „-D”

to znaczy

-DMyArg= MyValue

zamiast

-DMyArg=MyValue
Kevin
źródło
0

kliknij dwukrotnie serwer apache w zakładce serwera eclipse. teraz zmień port administratora tomacat na 8010, zmień port http na 8082 i zmień port Ajp na 8011.

sudeep biswas
źródło
0

Jeśli wszystkie podane odpowiedzi nie działają dla Ciebie, po prostu zmień swój obecny obszar roboczy.

plik-> przełącz obszar roboczy

To rozwiązałoby twój problem.

Umesh
źródło
Ostatnia i dobra opcja. Ale niektóre bóle głowy powodują zmianę miejsca pracy.
Sagar007
0

W moim przypadku problem był związany z uruchomioną inną instancją Tomcata. Zatrzymałem go w usługach i problem został rozwiązany

Wisznu
źródło
0

Po wykonaniu wszystkich powyższych czynności problem nie został rozwiązany.

W końcu rozwiązano z poniższymi krokami.

1- Sprawdź plik .log w katalogu przestrzeni roboczej. Problem z wersją Java

„Przyczyna: java.io.IOException: Nie można uruchomić programu” C: \ jdk1.7.0_45 \ bin \ java ”: Błąd CreateProcess = 193,% 1 nie jest poprawną aplikacją Win32 pod adresem java.lang.ProcessBuilder.start (Nieznany Source) w java.lang.Runtime.exec (Unknown Source) at java.lang.Runtime.exec (Unknown Source) at org.eclipse.debug.core.DebugPlugin.exec (DebugPlugin.java:869) ... 80 więcej

Przyczyna: java.io.IOException: błąd CreateProcess = 193,% 1 nie jest poprawną aplikacją Win32 pod adresem java.lang.ProcessImpl.create (metoda rodzima) pod adresem java.lang.ProcessImpl. (Nieznane źródło) pod adresem java.lang. ProcessImpl.start (nieznane źródło) ”

Zainstalowałem poprawny zestaw JDK zgodny z systemem operacyjnym i problem został rozwiązany. PS: jawnie ustawiłem ścieżkę JDK przez zaćmienie (Okno-> preferencje-> zainstalowane JRE), ale po ustawieniu poprawnej ścieżki JDK działa dobrze dla mnie.

Saurabh Gupta
źródło
0

Najpierw sprawdź w pliku Web.xml, czy istnieje wiele znaczników <mapowania serwletów> o różnych nazwach Jeśli tak Usuń niechciane i uruchom .. To powinno działać dobrze

LUB

Aby rozwiązać ten problem, musisz usunąć plik .snap znajdujący się w katalogu.

Przejdź do swojego obszaru roboczego Eclipse, z którego korzystaszPath -> workspace.metadata.plugins \ org.eclipse.core.resources \ snapfile

Usuń plik przyciągania.

Po usunięciu tego pliku Usuń serwer Tomcat, a następnie usuń również środowisko wykonawcze serwera, które jest wybrane jako Apache tomcat. Następnie ponownie dodaj serwer i przejdź do projektu -> Właściwości -> Aspekty projektu -> Po prawej stronie znajdziesz zakładki Szczegóły i Czas wykonania. Kliknij Środowiska wykonawcze i zaznacz pole Apache, które już tam jest (jeśli nie istnieje, dodaj je)

Zmień numery portów i uruchom.

Sravan Yadav Lingam
źródło
0

spróbuj usunąć wszystkie zależności projektu z lokalnego repozytorium maven (.m2).

Ścieżka: C: \ Users \ nazwa_użytkownika \ .m2 \ repozytorium

zamknij zaćmienie i otwórz ponownie, automatycznie pobierze wszystkie zależności.

Isuru
źródło
0

Rozwiązałem swój problem, po prostu zamykając wszystkie inne projekty w zaćmieniu.

azhar baloch
źródło