У меня эта проблема уже какое-то время. Я перепробовал так много вещей, которые потерпели неудачу, что мне пришлось переключиться на netbeans, чтобы иметь возможность развиваться. Но в netbeans отсутствуют некоторые важные функции, поэтому мне действительно нужно, чтобы это работало в eclipse.
С нуля: у меня есть «родительский» проект maven с несколькими модулями в нашем репозитории svn. 2 модуля - это веб-проекты, которые мне нужно развернуть на сервере Tomcat. Эти веб-проекты имеют несколько зависимостей, среди которых есть другие модули родительского проекта maven.
У меня была эта конфигурация, работающая с eclipse ganymede, но 3 недели назад я начал получать ClassNotFoundException
s при запуске сервера, я понятия не имею, почему это началось.
С тех пор я пытался получить новые пакеты Eclipse (Java EE), но как бы я это ни делал, вот что происходит:
- Я получаю eclipse с запущенным maven + svn и добавляю свою установку tomcat в список серверов eclipse.
- Я проверяю родительский проект, он включает модули. Eclipse дает мне целый список проектов.
- Начинается чушь: я не могу добавить 2 веб-проекта в tomcat, он говорит мне, что никакие проекты не могут быть добавлены (что означает «у вас нет никаких веб-проектов!»). Кроме того, я не могу выбрать «Запуск от имени -> Запуск на сервере» для классов сервлетов («Выбор не содержит ресурсов, которые могут выполняться на сервере»), даже если они явно расширяют HttpServlet. Поскольку я потратил на это слишком много часов, я узнал, как с этим бороться: преобразовать проект в «Граненый проект» в свойствах проекта.
- Теперь я могу добавить оба проекта на сервер Tomcat.
При запуске сервера я получаю
FATAL: Ошибка загрузки контекста WebappClassLoader: / делегат BEWeb: ложные репозитории: / WEB-INF / classes / ----------> Родительский загрузчик классов: org.apache.catalina.loader.StandardClassLoader@55ae3b4d de.comp. utils.servlet.SInvokerServlet
Этот класс находится в одном из модулей, перечисленных как зависимость
WEB-INF/lib
развернутого проекта пусто. Никаких библиотек, maven и / или eclipse не делают того, что делали 3 недели назад.
Я пробовал возиться с файлами eclipse в .settings
, а также с .project
и .classpath
, но ничего полезного не вышло. Может ли кто-нибудь указать мне правильное направление? Я сделаю все с нуля, если вам нужно, это не будет иметь значения, поскольку я делал это уже много раз (с разными версиями eclipse, maven, tomcat, ...) Если вам нужно, чтобы я опубликовал какие-либо файлы, я буду рад подчиняться.
Поскольку это не давало мне спать по ночам в течение некоторого времени, я назначу награду за эту. спасибо до сих пор.
================================
ИЗМЕНИТЬ, чтобы ответить на следующие вопросы
Просто чтобы проверить: сборка ваших проектов из командной строки и их развертывание вручную работает, не так ли?
Да, mvn package
работает нормально, копирование этого файла .war в tomcat приводит к созданию рабочего приложения, также файл war содержит все зависимости.
Когда вы говорите «получите новые пакеты Eclipse (Java EE)», вы имеете в виду, что теперь используете Eclipse Indigo (3.7)?
да. Но у меня были те же проблемы с 3.5, версии eclipse не показали никакой разницы в своем поведении.
Когда вы говорите: «Я получаю eclipse с запущенным maven + svn», вы используете m2eclipse или сгенерировали конфигурацию eclipse с помощью плагина maven eclipse?
Я установил m2e и проверил проекты из svn с помощью «Щелкните правой кнопкой мыши -> Оформить заказ как проект Maven». Однако в репозитории нет файлов, специфичных для eclipse, похоже, они генерируются при оформлении заказа. Когда я использую mvn eclipse:eclipse
, затем закрываю + снова открываю проекты, я не могу добавить их на сервер tomcat («Нет ресурсов, которые можно добавить или удалить с сервера»), что означает, что eclipse не распознает их как веб-проекты.