Я унаследовал веб-приложение 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