Eclipse прекратил развертывание любых зависимостей проекта [maven] в tomcat - PullRequest
3 голосов
/ 08 сентября 2011

У меня сейчас такая проблема. Я перепробовал так много вещей, которые потерпели неудачу, и мне пришлось переключиться на netbeans, чтобы иметь возможность развиваться. Но в NetBeans отсутствуют некоторые важные функции, поэтому мне действительно нужно это для работы в Eclipse.

С нуля: У меня есть «родительский» проект maven с несколькими модулями в нашем репозитории SVN. 2 модуля - это веб-проекты, которые мне нужно развернуть на сервере Tomcat. Эти веб-проекты имеют несколько зависимостей, в том числе другие модули родительского проекта maven.

У меня была эта конфигурация с eclipse ganymede, но 3 недели назад я начал получать ClassNotFoundException s при запуске сервера, я понятия не имею, почему это начало происходить.

С тех пор я пытался получить новые пакеты Eclipse (Java EE), но независимо от того, как я это делаю, вот что происходит:

  • Я получаю eclipse при работающем maven + svn и добавляю свою установку tomcat в список серверов eclipse.
  • Я проверяю родительский проект, в который входят модули. Затмение дает мне целый список проектов.
  • Дерьмо начинается: я не могу добавить 2 веб-проекта в tomcat, он говорит, что ни один проект не может быть добавлен (то есть «у вас нет веб-проектов!»). Кроме того, я не могу выбрать «Запуск от имени -> Запуск на сервере» в классах сервлетов («Выбор не содержит ресурсов, которые могут выполняться на сервере»), даже если они явно расширяют HttpServlet. Поскольку я потратил слишком много часов на это, я понял, как с этим справиться: преобразовать проект в «граненый проект» в свойствах проекта.
  • Теперь я могу добавить оба проекта на сервер Tomcat.
  • При запуске сервера я получаю

    FATAL: ошибка при загрузке WebappClassLoader контекст: / BEWeb делегат: ложь хранилища: / WEB-INF / классы / ----------> Родительский загрузчик классов: org.apache.catalina.loader.StandardClassLoader@55ae3b4d de.comp.utils.servlet.SInvokerServlet

  • Этот класс входит в один из модулей, перечисленных как зависимости

  • WEB-INF/lib развернутого проекта пусто. Никаких libs вообще, 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 при работающем maven + svn», вы используете m2eclipse или сгенерировали конфигурацию eclipse с помощью плагина maven eclipse?

Я установил m2e и извлек проекты из svn, используя «Правый клик -> Оформить как Maven Project». В репозитории нет файлов, специфичных для затмения, но создается впечатление, что они создаются при оформлении заказа. Когда я использую mvn eclipse:eclipse, затем закрываю + открываю проекты, я не могу добавить их на сервер tomcat («Нет ресурсов, которые можно добавить или удалить с сервера»), то есть Eclipse не распознает их как веб-проекты. .

1 Ответ

4 голосов
/ 08 сентября 2011

Прежде всего: не используйте maven-eclipse-plugin вместе с m2e / m2eclipse, они несовместимы. m2e должен иметь возможность импортировать ваши проекты Maven и настраивать их так, как ожидает Eclipse.

Вы установили дополнение WTP для m2e? Это сообщение в блоге , возможно, стоит прочитать. Если какой-либо из ваших файлов pom.xml вызывает какой-либо конкретный плагин (например, для генерации кода), вам может понадобиться соответствующее дополнение к m2e. Этот пост вики может дать вам представление о том, почему.

Еще одна попытка, которую вы можете рассмотреть, - это настройка среды на основе Helios. Убедитесь, что все плагины, которые вам могут понадобиться, по-прежнему доступны.

Надеюсь, что кое-что из этого поможет.

...