Несколько контекстов с одним и тем же путем ошибка запуска веб-службы в Eclipse с использованием Tomcat


131

Это ошибка, которую я получил, когда создал свой первый веб-сервис Axis2 с помощью Eclipse. После того, как я написал класс, я создал веб-сервис с Apache Axis2. Когда я нажимаю кнопку запуска сервера в eclipse, появляется сообщение об ошибке:

Не удалось опубликовать конфигурацию сервера Tomcat v6.0 на локальном хосте.
Путь к нескольким контекстам равен "/ FirstApache".

FirstApache - это динамический веб-проект, который я создал ранее. Я выбрал правильный веб-проект в разделе настройки мастера веб-служб.

Как я могу это исправить?

Ответы:


276

Найдите server.xmlфайл и проверьте свои <Context>теги, возможно, для одного и того же пути существует несколько определений. Удалите дубликаты, и это должно сработать для вас.

Посмотрите ответ здесь .

Автоматически отформатируйте xml-файл ( control+ shift+ f), поскольку второй <Context>тег может находиться в той же строке, но за пределами области просмотра и действительно далеко от видимого.


13
Вы можете найти файл server.xml в рабочей области \ .metadata \ .plugins \ org.eclipse.wst.server.core \ tmp0 \ conf (измените tmp0, если это не ваш сервер по умолчанию для eclipse)
Repoker

У меня возникла эта проблема после того, как я создал копию динамического веб-проекта в eclipse java ee и вместо этого попытался запустить JSP в копии. Как мне решить эту проблему?
Эрран Морад

Должен быть защищен, чтобы избежать других бесполезных «благодарностей». Голосование за ответ лучше, чем благодарственный комментарий.
Dwhitz

Спасибо, работает, но я не понимаю, почему происходит это дублирование?
Sandip S.

Это решение все еще работает, я использую Tomcat 8.5 на Eclipse V2018-12
Raymund Arthur

70

В STS / Eclipse перейдите в «проводник проекта» или «проводник пакетов», и там есть папка с именем «сервер». Откройте его, и вы найдете server.xmlфайл. Внутри этого файла внизу вы найдете определение вроде

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

Вы можете найти дубликаты того же определения, которые вам нужно будет удалить.


1
Добавление удаления добавленных серверов, эта строка еще раз автоматически
Vinayak Shedgeri

Если приложение не запускается даже после этого, перейдите на вкладку «Серверы» рядом с Консолью и удалите все модули, расположенные в раскрывающемся списке имени сервера. Перезапустите проект после этого
Самир Синха

41

В Eclipse перейдите в проект Servers . Откройте дерево используемой версии Tomcat. Откройте файл server.xml и проверьте теги контекста.


28

В вашей eclipse IDE в проводнике проекта откройте server.xml, как в:

введите описание изображения здесь

И удалите теги контекста с повторяющимися ссылками для вашего проекта:

введите описание изображения здесь


16

Перейдите server.xmlи найдите "Context"тег с именем свойства "docBase".

Удалите здесь повторяющиеся строки. Затем попробуйте перезапустить сервер.


12

Перейдите в проект Servers в eclipse, в конфигурации вашего сервера времени выполнения (в моем случае Tomcat v7.0 Server в localhost-config) перейдите к server.xml файл затем найдите тег <context>, обычно вы найдете более одного тега контекста , удалите их и запустите приложение на соответствующем сервере, который теперь будет работать.

в моем случае я нашел повторяющийся тег контекста:

<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

В eclipse с использованием tomcat вы просто открываете этот файл server.xml и находите тег Context, и здесь вы видите, что ваше имя контекста больше, чем одно, вы просто удаляете бесполезные контексты и перезапускаете сервер, он будет работать ...

введите описание изображения здесь


5
  1. В Свойствах проекта выберите «Настройки веб-проекта».
  2. Измените «Корень контекста».
  3. Очистите свой сервер
  4. теперь вы можете перезапустить свой сервер

Отличное решение для разработчиков, использующих более одного экземпляра одного и того же приложения в разных местах на своих рабочих станциях. Я обнаружил, что не все установки Eclipse / Tomcat имеют тег <Context> в своем файле server.xml.
Mindsect Team


3

Просто удалите сервер в Eclipse и снова добавьте сервер tomcat. чем выключить tomcat в файле tomcat / bin / shutdown.bat и запустить сервер в eclipse.


2

Попробуйте удалить существующий сервер tomcat в консоли сервера. Если у вас нет консоли, вы можете перейти в «Показать вид -> сервер», удалить сервер, щелкнув по нему правой кнопкой мыши, а затем добавить новый сервер.


2

Если вы используете Tomcat 7 и Eclipse, щелкните сервер Tomcat и перейдите на вкладку модулей. Там вы найдете дубликат записи. Удалите обе записи и повторно разверните приложение. Теперь тебе хорошо идти.


2

В связи с этим, если вы скопировали проект или, в любом случае, имеете тот же контекстный путь для 2 «активных» проектов, вам необходимо изменить контекстный путь одного из них, затем очистить настройки сервера tomcat, а затем повторно опубликовать серверы.

см. этот более подробный ответ


1

У меня была такая проблема раньше. Я просто решил это, развернув дерево tomcat и удалив папку, которая вызывает конфликт. в вашем случае есть /FirstApache. после того, как вы его удалите. затем перезапустите его, и вы сможете запустить его. Если это произойдет снова, удалите его и попробуйте еще раз.



0

В моем случае я обнаружил повторяющиеся пути в Servers / Tomcat5.5 в localhost-config / server.xml под тегом. Удаление дубликатов решило проблему.


0

Удалите org.eclipse.wst.server.core и org.eclipse.wst.server.ui из .metadata / .plugins wrokspace

удалите сервер из eclipse, затем перенастройте сервер в eclipse.


0

Эта ошибка возникает, когда вы копируете проект, а не за ним, а затем меняете имя этого проекта.

в таком случае выполните следующие действия.

Шаг 1: вам нужно отредактировать файл web.xml. удалить сервлет и отображение сервлетов из предыдущих проектов.

Шаг 2: перешли на СЕРВЕР -> server.xml -> найти контекст

Пример: - Context docBase = "JSPandServletDemo" path = "/ JSPandServletDemo" = "true" source = "org.eclipse.jst.jee.server: JSPandServletDemo" />

теперь вам просто нужно изменить путь на имя вашего текущего проекта.

Удачи и счастливого кодирования :)


-1

Если вы используете STS и ваш сервер является основным. Просто дважды щелкните сервер и перейдите на вкладку «Модули»> отобразите «Настроить веб-модули на этом сервере».> Вы можете просто удалить модули и запустить их снова.


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

}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.