Tomcat генерирует исключения ClassNotFound для классов в других проектах открытого затмения - PullRequest
22 голосов
/ 09 апреля 2011

У меня есть структура проекта eclipse, которая выглядит примерно так:

eclipse
    project a
    project b

Все эти проекты - проекты Maven.Проект B является проектом Eclipse WTP и содержит проект A в качестве зависимости.Я использую плагин m2eclipse.

При развертывании Project B в Tomcat (все из Eclipse) он всегда выдает ошибки, говоря, что не может найти классы из Project A. Единственный способ, которым я могу это решить закрыть проект A в Eclipse и выполнить команду mvn install , поэтому на этом этапе проект A рассматривается как любая другая зависимость.

Я бы не хотелМне нужно продолжать открывать, а затем закрывать Проект A каждый раз, когда я вносю в него изменения (что довольно часто на данном этапе).

Я попытался добавить проект A в путь сборки проекта B, однако, похоже, это не сработало.Опять же, это работает, только если я закрою проект в eclipse, поэтому он рассматривается как обычная зависимость maven.

К вашему сведению, я использую версию Eclipse для Helios.Проект B - это проект Spring, поэтому, естественно, Tomcat падает, когда импортирует все компоненты и т. Д.

У кого-нибудь есть предложения?Большое спасибо.

Ответы [ 6 ]

75 голосов
/ 11 сентября 2012

Что вам нужно сделать, это:

  1. В Eclipse перейдите в Окно> Показать представление> Серверы> и откройте вкладку под названием Серверы
  2. В разделе «Серверы» дважды щелкните нужный сервер
  3. Это действие должно открыть окно, озаглавленное Overview, с выбранным вами сервером в TAB
  4. В этом окне выберите: Открыть конфигурацию запуска и нажмите на ссылку.
  5. В окне «Редактировать конфигурацию» выберите вкладку «Classpath»
  6. В текстовом поле ClassPath выберите строку: Записи пользователя
  7. Теперь нажмите кнопку справа под названием: Добавить проекты
  8. В появившемся окне Выбор проекта выберите внешний проект, который вы хотите, чтобы сервер нашел с помощью щелчка.
  9. Закройте эти окна, нажав «Применить», затем «ОК» в зависимости от того, как вы работаете со стеком
  10. Перезагрузите сервер в окне обзора

Вы должны быть готовы к работе. На самом деле это всего лишь 2-минутное упражнение. Удачи

32 голосов
/ 12 марта 2012

Если вы перейдете в свойства проекта, выберите пункт «Сборка развертывания», нажмите «Добавить ...» и выберите «Проект», вы можете добавить зависимый проект, и проблема должна быть решена.

5 голосов
/ 10 мая 2013

Щелкните правой кнопкой мыши веб-проект, который добавлен на сервер-контейнер, и выберите Maven, а затем выберите «Отключить разрешение рабочей области». Тогда ваш проект зависимостей начнет появляться как jar, как и любые другие зависимости.

Щелкните правой кнопкой мыши WebProject -> Maven -> Disable Workspace Resolution.

5 голосов
/ 09 апреля 2011

Причина, по которой tomcat не может найти ваши классы, заключается в том, что tomcat не видит зависимости проекта в eclipse. Чтобы решить эту проблему, вы можете добавить папку bin проекта a в путь класса tomcat приложения, запущенного из проекта b.

2 голосов
/ 09 апреля 2011

Вы установили расширение m2eclipse, которое знает о WTP?Без этого m2e не будет работать правильно для проектов WTP.Смотрите это:

https://docs.sonatype.org/display/M2ECLIPSE/WTP+mini+howto

0 голосов
/ 20 марта 2017

Простой способ:

Run -> Run Configurations... -> Classpath

...