„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.


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.


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”.


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.


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.


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

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


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


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


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.


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.


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 .


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!


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.


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.


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.


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ć.


2

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

2- Usuń folder tmp.

3- Uruchom ponownie Eclipse IDE


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ć.


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


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.


1

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


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.


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

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.


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.


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


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.


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.


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.


0

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.