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 и т.д.
Есть ли у кого-нибудь предложения? Большое спасибо.
Ответы
Ответ 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 для этого, см. Пример