Кілька контекстів з однаковою помилкою шляху запуску веб-сервісу в Eclipse за допомогою Tomcat


130

Це помилка, яку я отримав, коли створив свій перший веб-сервіс Axis2 за допомогою Eclipse. Після написання класу я створив веб-сервіс за допомогою Apache Axis2. Коли я натискаю кнопку запуску сервера при затемненні, воно видає повідомлення про помилку:

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

FirstApache - це динамічний веб-проект, який я створював раніше. Я вибрав правильний веб-проект із частини конфігурації майстра веб-служб.

Як я можу це виправити?

Відповіді:


276

Шукайте server.xmlфайл і перевіряйте свої <Context>теги, ймовірно, для одного і того ж шляху є кілька визначень. Видаліть дублікати, і це повинно працювати для вас.

Ознайомтесь з відповіддю тут .

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


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

Цю проблему я отримав після того, як створив копію динамічного веб-проекту в eclipse java ee і спробував замість цього запустити JSP. Як виправити цю проблему?
— Ерран Морад

Слід захищати, щоб уникнути інших марних «подяк». Голосування до відповіді краще, ніж коментар подяки.
— Dwhitz

Дякую, це працює, але я в сум'ятті, чому таке дублювання відбувається?
— Сандіп С.

Це рішення все ще працює, я використовую Tomcat 8.5 на Eclipse V2018-12
— Arthur

70

У STS / Eclipse перейдіть до "Explorer Explorer" або "Explorer Explorer" і там є папка під назвою "сервер". Відкрийте його, і ви знайдете server.xmlфайл. Всередині цього файлу внизу ви знайдете таке визначення, як

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

Можливо, ви знайдете дублікати того самого визначення, яке вам потрібно було б видалити.


1
Додавання видалення серверів додано, цей рядок ще раз автоматично
— Vinayak Shedgeri

Якщо додаток не запускається навіть після цього, перейдіть на вкладку «Сервери» поруч із Консоль та видаліть усі модулі, що знаходяться всередині випадаючого імені сервера. Перезавантажте проект після цього
— Сінха

41

У Eclipse перейдіть до проекту Сервери . Відкрийте дерево для версії Tomcat, яку ви використовуєте. Відкрийте файл server.xml і перевірте свої теги контексту.


28

У вашому IDE затемненні на провіднику проекту доступ до сервера.xml, як у:

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

І видаліть теги контексту з дублікатами посилань для вашого проекту:

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


16

Перейдіть server.xmlта шукайте "Context"тег із назвою властивості "docBase".

Видаліть тут повторювані рядки. Потім спробуйте перезапустити сервер.


12

Перейдіть до проекту Servers у затемненні, під час налаштування сервера виконання (у моєму випадку 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

У затемненні за допомогою tomcat ви просто відкриєте цей файл server.xml і знайдете тег контексту, і тут ви побачите, що ваше ім'я контексту більше, ніж одне, ви просто видаляєте непотрібні контексти та перезапускаєте сервер, він буде працювати ....

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


5
  1. У Властивості вашого проекту виберіть "Налаштування веб-проекту".
  2. Змініть "Корінь контексту".
  3. Очистіть ваш сервер
  4. тепер ви можете перезапустити ваш сервер

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

5

Eclipse >> Explorer Explorer >> сервери >> server.xml >> тег >> видалити дублікат тегу вашого проекту


3

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


2

Спробуйте видалити існуючий сервер tomcat в консолі сервера. Якщо у вас немає консолі, ви можете перейти до "Показати перегляд -> сервер", видалити сервер, клацнувши правою кнопкою миші, а потім додати новий сервер.


2

Якщо ви використовуєте Tomcat 7 і Eclipse, натисніть на сервер Tomcat і перейдіть на вкладку модулів. Там ви знайдете дублікат запису. Видаліть запис і повторно застосуйте програму. Вам добре піти зараз.


2

У відповідній примітці, якщо ви скопіювали проект або в будь-якому випадку, маєте однаковий контекстний шлях для 2-х активних проектів, вам слід змінити контекстний шлях до одного з них, потім очистити налаштування сервера tomcat, а потім повторно опублікувати сервери

дивіться цю детальну відповідь


1

Я мав цю проблему раніше. Я просто вирішив це, розширивши дерево tomcat і видаливши папку, яка викликає зіткнення. у вашому випадку є /FirstApache. після видалення. тоді ви його повторите, ви повинні мати можливість бігати. Якщо це повториться, видаліть його та спробуйте ще раз.


0

Видаліть пробіл або порожній рядок на сервері server.xml або context.xml на початку коду


0

У моєму випадку я знайшов дублікати шляхів у серверах / Tomcat5.5 на localhost-config / server.xml під тегом. Видалення дублікатів вирішило проблему.


0

Видаліть org.eclipse.wst.server.core і org.eclipse.wst.server.ui з .metadata / .plugins of wrokspace

видаліть сервер від затемнення, потім переконфігуруйте сервер у затемненні.


0

Ця помилка виникає, коли ви копіюєте проект, ніж минулий, а потім ви змінюєте назву цього проекту.

у такому випадку виконайте наступні кроки.

Крок 1. Вам потрібно відредагувати файл web.xml. видалити сервлет та сервлет-карти попередніх проектів.

Крок 2: потрапив до SERVER -> server.xml -> знайти контекст

Приклад: - Контекст docBase = "JSPandServletDemo" path = "/ JSPandServletDemo" = "true" source = "org.eclipse.jst.jee.server: JSPandServletDemo" />

тепер просто потрібно змінити ім'я шляху на поточну назву проекту.

Удачі щасливого кодування :)


-1

Якщо ви використовуєте STS, а ваш сервер Pivotal Просто двічі клацніть на сервері та перейдіть на вкладку «Модулі»> дисплей Налаштування веб-модулів на цьому сервері.> Ви можете просто видалити модулі та запустити ще раз.


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