Подтвердить что ты не робот

Tomcat выбрасывает исключения ClassNotFound для классов в других проектах открытого затмения

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

eclipse
    project a
    project b

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

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

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

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

FYI Я использую версию Eclipse от Helios. Проект B является проектом Spring, поэтому, естественно, Tomcat падает, когда он импортирует все beans и т.д.

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

4b9b3361

Ответ 1

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

Ответ 2

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

  • В Eclipse перейдите в Window > Show View > Servers > и откройте вкладку под названием Серверы
  • В серверах дважды щелкните нужный сервер
  • Это действие должно открыть окно под названием "Обзор" с выбранным вами сервером в TAB
  • В этом окне выберите: Откройте конфигурацию запуска и нажмите ссылку.
  • В окне "Редактировать конфигурацию" выберите вкладку "Классpath"
  • В текстовом поле ClassPath выберите строку: User Entries
  • Теперь нажмите кнопку справа: Добавить проекты
  • В появившемся окне "Выбор проекта" выберите внешний проект, который вы хотите найти сервером, нажав кнопку.
  • Закройте эти окна, нажав "Применить", затем "ОК", если это необходимо, когда вы работаете над стекем
  • Перезагрузите сервер в окне обзора

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

Ответ 3

Если вы перейдете к свойствам проекта, выберите элемент "Развертывание сборки", нажмите "Добавить..." и выберите "Проект", вы можете добавить зависимый проект, и проблема должна быть решена.

Ответ 4

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

Щелкните правой кнопкой мыши по веб-проекту → Maven → Отключить разрешение рабочей области.

Ответ 5

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

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

Ответ 6

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

Run -> Run Configurations... -> Classpath

Ответ 7

добавление папки bin в путь класса не является хорошим вариантом, который будет обеспечивать promplem temorarily whot при развертывании в другой системе

поэтому компилируйте зависящие классы проекта и поместите его в tomcat,

Я рекомендую использовать Apache Ant для этого, см. Пример