我刚刚刚刚启动了一个Spring Boot的新项目,我正在试图解决这个问题。我正在使用Spring Tool Suite,它为我创建了一个Spring Boot项目并加载了一些依赖关系,我知道我需要更多的依赖关系(特别是Spring批处理和弹簧数据)Spring中的ClassNotFoundException JavaMailSenderImpl使用Spring Boot进行JUnit测试
这是我的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
然后我试着使用构建应用程序但它在测试中抛出一个错误。测试包括以下内容:
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() {
}
}
因此,所有它做的是试图加载应用程序上下文,但它无法与org.springframework.mail.javamail.JavaMailSenderImpl一个ClassNotFoundException。
我知道这是纯粹的测试问题,因为在添加一些Spring Data的内容并跳过maven中的测试后,我的存根应用程序按预期运行(并查看生成的jar,我可以看到spring -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)。 –