Как отладить проблемы с развертыванием на tomcat из eclipse?

Я унаследовал веб-приложение Spring. Это проект веб-приложения Gradle, который я импортировал в Eclipse. Мы используем Eclipse 4.7.3, Tomcat 7.0.47 и JDK 1.8.0.151.

Проблема в том, что когда я развертываю проект на Tomcat из Eclipse, некоторые из jar-файлов зависимостей не копируются в каталог lib проекта. Когда TC пытается запустить веб-приложение, возникают ошибки ClassNotFoundException.

Я новичок в веб-приложениях Java, поэтому мне нужны несколько советов по проверке импорта/сборки/развертывания моего проекта.

Вот что я сделал до сих пор:

  • Установите Tomcat 7.0.47 (не запускайте его после установки) Установите версию Eclipse 4.7.3 JavaEE (которая поставляется с установленной интеграцией Buildship Gradle 2.0)
  • Импортируйте мой проект как проект Gradle (Файл -> Импорт -> Gradle -> Существующий проект Gradle). Я указываю на корень проекта, выбираю веб-проект для развертывания и использую настройки по умолчанию.
  • Добавьте сервер в проект (в представлении "Сервер" нажмите "Добавить" -> выберите
    Tomcat 7.0 -> укажите на корень TC)
  • Щелкните правой кнопкой мыши веб-цель и выберите «Запуск от имени» -> «Запуск от имени сервера» и выберите добавленный мной сервер TC 7.

На этом этапе проект собирается и развертывается. В консоли отображается журнал TC. TC запускается, но показывает ошибку при попытке запустить веб-приложение (например):

Вызвано: java.lang.ClassNotFoundException: org.apache.log4j.Level

Я мог бы копировать jar-файлы, но у меня сложилось впечатление, что Gradle должен захватывать jar-файлы зависимостей во время развертывания. Я могу убедиться, что некоторые из них скопированы, а другие отсутствуют. Как я могу отладить эту проблему?

Вот часть моего файла build.gradle

buildscript {
  repositories {
    maven {
      url projectDownloadUrl 
    }
  }
  dependencies {
    classpath lib_license_gradle_plugin
  }
}

Веб-приложение развернуто в ...eclipse-workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0. Каталог lib здесь содержит некоторые из развернутых jar-файлов зависимостей. Файл gradle.properties содержит список зависимостей, например

lib_apache_tomee=org.apache.openejb:apache-tomee:1.7.1


person Brad Dre    schedule 02.06.2018    source источник


Ответы (1)


Очевидно, это не то место, где можно задавать вопросы Gradle/Tomcat и отвечать на них. Я понял проблему вскоре после публикации и, не желая разочаровывать 40 человек, которые пришли сюда за помощью с тех пор, решил, что должен, наконец, ответить на свой вопрос.

Во-первых, я был на правильном пути в том, как отладить развертывание приложения gradle/maven в Eclipse. После его развертывания вы можете проверить, какие jar-файлы находятся в каталоге развертывания. Eclipse развертывается локально в месте, похожем на c:\users\\eclipse-workspace.metadata.plugins\org.eclipse.wst.server.core.

Во-вторых, непосредственная проблема, с которой я столкнулся, была связана с использованием Tomcat вместо Tomcat EE. Ответ на это был прямо в вопросе:

lib_apache_tomee=org.apache.openejb:apache-tomee:1.7.1

Tomee — это Tomcat + Java Enterprise Edition, который включает в себя некоторые дополнительные журналы и другие файлы jar, которые мне не хватало.

person Brad Dre    schedule 13.06.2019