Wiele kontekstów z błędem tej samej ścieżki podczas uruchamiania usługi internetowej w Eclipse przy użyciu Tomcat


130

To jest błąd, który otrzymałem podczas tworzenia mojej pierwszej usługi sieciowej Axis2 przy użyciu Eclipse. Po napisaniu zajęć utworzyłem usługę internetową w Apache Axis2. Kiedy klikam przycisk uruchamiania serwera w eclipse, wyświetla się komunikat o błędzie:

Nie można opublikować konfiguracji serwera dla serwera Tomcat w wersji 6.0 na hoście lokalnym.
Wiele kontekstów ma ścieżkę „/ FirstApache”.

FirstApache to dynamiczny projekt sieciowy, który utworzyłem wcześniej. Wybrałem poprawny projekt sieciowy z części konfiguracyjnej w kreatorze usług internetowych.

Jak mogę to naprawić?

Odpowiedzi:


276

Wyszukaj server.xmlplik i sprawdź <Context>tagi, prawdopodobnie istnieje wiele definicji tej samej ścieżki. Usuń duplikaty i powinno działać dla Ciebie.

Sprawdź odpowiedź tutaj .

Automatycznie sformatuj plik xml ( control+ shift+ f), ponieważ drugi <Context>znacznik może znajdować się w tej samej linii, ale poza widocznym obszarem i bardzo daleko od widocznego.


13
Możesz znaleźć plik server.xml w obszarze roboczym \ .metadata \ .plugins \ org.eclipse.wst.server.core \ tmp0 \ conf (zmień tmp0, jeśli nie jest to twój domyślny serwer eclipse)
Repoker

Pojawił się ten problem po utworzeniu kopii dynamicznego projektu WWW w eclipse java ee i próbie uruchomienia stron JSP w kopii. Jak rozwiązać ten problem?
Erran Morad

Powinien być chroniony, aby uniknąć innych bezużytecznych „podziękowań”. Głos pozytywny na odpowiedź jest lepszy niż komentarz z podziękowaniem.
Dwhitz

Dzięki, działa, ale nie mam pojęcia, dlaczego występuje ta duplikacja?
Sandip S.,

To rozwiązanie nadal działa, używam Tomcat 8.5 na Eclipse V2018-12
Raymund Arthur

70

W STS / Eclipse przejdź do „Eksploratora projektów” lub „Eksploratora pakietów” i jest tam folder o nazwie „serwer”. Otwórz go, a znajdziesz server.xmlplik. W tym pliku na dole znajduje się definicja, taka jak

<Context docBase="myproject" path="/myproject" reloadable="true"
   source="org.eclipse.jst.jee.server:myproject"/>

Możesz znaleźć duplikaty tej samej definicji, którą należałoby usunąć.


1
Dodanie usuwania serwerów dodanych, ta linia jeszcze raz automatycznie
Vinayak Shedgeri

Jeśli aplikacja nie uruchomi się nawet po tym, przejdź do zakładki „Serwery” obok Konsola i usuń wszystkie moduły znajdujące się na liście rozwijanej z nazwą serwera. Ponownie uruchom projekt po tym
Sameer Sinha

41

W Eclipse przejdź do projektu Serwery . Otwórz drzewo wersji Tomcat, której używasz. Otwórz plik server.xml i zweryfikuj tagi kontekstu.


28

W swoim środowisku eclipse IDE w eksploratorze projektów uzyskaj dostęp do server.xml jak w:

wprowadź opis obrazu tutaj

Usuń tagi kontekstowe ze zduplikowanymi odniesieniami do projektu:

wprowadź opis obrazu tutaj


16

Przejdź do server.xmli wyszukaj "Context"tag z nazwą właściwości "docBase".

Usuń zduplikowane linie tutaj. Następnie spróbuj ponownie uruchomić serwer.


12

Przejdź do projektu Serwery w eclipse, pod konfiguracją serwera wykonawczego (w moim przypadku Tomcat v7.0 Server at localhost-config) przejdź do pliku server.xml , a następnie wyszukaj tag <context>, zwykle znajdziesz więcej niż jeden tag kontekstowy , usuń je i uruchom aplikację na odpowiednim serwerze, który będzie teraz działać.

w moim przypadku znalazłem zduplikowany tag kontekstu:

<Context docBase="my-project" path="/my-project" reloadable="true" source="org.eclipse.jst.jee.server:my-project"/&gt;&lt;Context docBase="my-project" path="/smartphone-selfcare" reloadable="true" source="org.eclipse.jst.jee.server:my-project"/></Host>

10

W eclipse za pomocą tomcat po prostu otwórz ten plik server.xml i znajdź tag kontekstu, a tutaj widzisz, że twoja nazwa kontekstu jest więcej niż taka, po prostu usuń niepotrzebne konteksty i zrestartuj serwer, będzie działać ...

wprowadź opis obrazu tutaj


5
  1. We właściwościach projektu wybierz „Ustawienia projektu sieci Web”.
  2. Zmień „Kontekst główny”.
  3. Wyczyść swój serwer
  4. teraz możesz zrestartować serwer

Doskonałe rozwiązanie dla programistów korzystających z więcej niż jednej instancji tej samej aplikacji w różnych lokalizacjach na swoich stacjach roboczych. Odkryłem, że nie wszystkie instalacje Eclipse / Tomcat mają tag <Context> w swoim pliku server.xml.
Zespół Mindsect

5

Eclipse >> eksplorator projektu >> serwery >> server.xml >> tag >> usuń zduplikowany tag z projektu


3

Po prostu usuń serwer w Eclipse i ponownie dodaj serwer Tomcat. niż zamknięcie tomcata w pliku tomcat / bin / shutdown.bat i uruchomienie serwera w eclipse.


2

Spróbuj usunąć istniejący serwer Tomcat w konsoli serwera. Jeśli nie masz konsoli, możesz przejść do „Pokaż widok -> serwer”, usunąć serwer, klikając go prawym przyciskiem myszy, a następnie dodać nowy serwer.


2

Jeśli używasz Tomcat 7 i Eclipse, kliknij serwer Tomcat, a następnie przejdź do zakładki modułów. Tam znajdziesz zduplikowany wpis. Usuń wpis i ponownie wdróż aplikację. Teraz możesz już iść.


2

Z drugiej strony, jeśli skopiowałeś projekt lub w jakimkolwiek przypadku, masz tę samą ścieżkę kontekstową dla 2 `` aktywnych '' projektów, musisz zmienić ścieżkę kontekstu jednego z nich, a następnie wyczyścić ustawienia serwera tomcat, a następnie ponownie opublikować serwery

zobacz tę bardziej szczegółową odpowiedź


1

Miałem ten problem wcześniej. Właśnie go rozwiązałem, rozwijając drzewo tomcat i usuwając folder, który powoduje konflikt. w twoim przypadku jest /FirstApache. po usunięciu. wtedy uruchomisz go ponownie, powinieneś być w stanie biec. Jeśli to się powtórzy, usuń go i spróbuj ponownie.


0

Usuń spację lub pusty wiersz w pliku server.xml lub context.xml na początku kodu


0

W moim przypadku znalazłem zduplikowane ścieżki w Servers / Tomcat5.5 w localhost-config / server.xml pod tagiem. Usunięcie duplikatów rozwiązało problem.


0

Usuń org.eclipse.wst.server.core i org.eclipse.wst.server.ui z .metadata / .plugins z wrokspace

usuń serwer z eclipse, a następnie przekonfiguruj serwer w eclipse.


0

Ten błąd występuje, gdy kopiujesz projekt, a potem go przenosisz, a następnie zmieniasz nazwę tego projektu.

w takim przypadku wykonaj następujące kroki.

Krok 1: musisz edytować plik web.xml. usuń serwlet i mapowanie serwletów z poprzednich projektów.

Krok 2: dostałem się do SERWERA -> server.xml -> znajdź kontekst

Przykład: - Context docBase = "JSPandServletDemo" path = "/ JSPandServletDemo" = "true" source = "org.eclipse.jst.jee.server: JSPandServletDemo" />

teraz wystarczy zmienić nazwę ścieżki na nazwę bieżącego projektu.

Powodzenia, szczęśliwego kodowania :)


-1

Jeśli używasz STS, a Twój serwer jest kluczowy Po prostu kliknij dwukrotnie serwer i przejdź do> zakładka Moduły> wyświetl Konfiguruj moduły sieciowe na tym serwerze.> Możesz po prostu usunąć moduły i uruchomić je ponownie.


-1
 //Trying to do more than one thing to the object in the same context, 
//the solution is to work on single context objects

public class SingletonContext<TContext>
    where TContext: DbContext,new()
{
    private static TContext _context;

    private SingletonContext()
    {

    }
    public static TContext GetInstance()
    {
        if (_context == null)
        {
            _context = new TContext();
        }
        return _context;
    }

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