Я только что начал новый проект с Spring Boot, с которым я пытаюсь справиться. Я использую Spring Tool Suite, который создал для меня проект Spring Boot, и загрузил некоторые зависимости, которые, как я знаю, мне понадобятся дальше (в частности, Spring Batch и Spring Data)ClassNotFoundException на Spring JavaMailSenderImpl в тесте JUnit с Spring Boot
Это мой pom.xml:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-batch</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- JDBC driver -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>6.1.0.jre8</version>
</dependency>
</dependencies>
Я читал справочную документацию и знать, что я буду нуждаться в почту в какой-то момент вниз по линии, поэтому я добавил это к моему application.properties
файл:
spring.mail.host=my.mail.host
затем я попытался создайте приложение с помощью mvn package
, но в тестах он ошибся. Тест состоит из следующих действий:
package its.idcard.batch;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class IdCardBatchApplicationTests {
@Test
public void contextLoads() {
}
}
Таким образом, все это делает пытается загрузить контекст приложения, но он терпит неудачу с ClassNotFoundException на org.springframework.mail.javamail.JavaMailSenderImpl.
Я знаю, что это проблема только с тестом, так как после добавления небольшого количества данных Spring Data и пропусков тестов в maven мое приложение-заглушка работает как ожидалось (и, глядя в сгенерированную банку, я вижу эту пружину -context-support-4.3.4-RELEASE.jar присутствует, содержащий класс-нарушитель), поэтому он, похоже, является проблемой класса для тестов, но я в тупике. Если я прокомментирую строку spring.mail.host
в файле свойств, тест проходит без проблем.
Любые идеи были бы с благодарностью оценены.
Вам нужно будет добавить зависимость 'javax.mail'. Попробуйте использовать этот \t \t \t javax.mail \t \t \t почта \t \t \t 1.4.7 \t \t –
Это уже включен в 'пружинно-загрузочный стартер-mail' зависимость поэтому нет необходимости добавлять его снова. –
Обратите внимание, что [текущая версия JavaMail - 1.5.6] (https://java.net/projects/javamail/pages/Home). –