2016-07-20 19 views
0

我正在使用郵件API的spring boot 4.2.7。除了郵件相關的所有jar類的路徑和正確加載。我在classpath中有上下文支持和mai api jar。但總是讓classnotfoundexcpetionSpring引導4.2.7 Mail api在URL中定義名爲'mailSender'的bean找不到類[org.springframework.mail.javamail.JavaMailSenderImpl]

Caused by: org.springframework.beans.factory.BeanCreationException: 
Could not autowire field: private 
org.springframework.beans.factory.BeanFactory 
org.springframework.boot.autoconfigure.jdbc.DataSourceInitializerPostProcessor.beanFactory; 
nested exception is 
org.springframework.beans.factory.CannotLoadBeanClassException: Cannot 
find class [org.springframework.mail.javamail.JavaMailSenderImpl] for 
bean with name 'mailSender' defined in URL 
[file:/C:workspace_md5/abc/src/main/resources/applicationContext.xml]; 
nested exception is java.lang.ClassNotFoundException: 
org.springframework.mail.javamail.JavaMailSenderImpl 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:573) 
~[spring-beans-4.2.7.RELEASE.jar:4.2.7.RELEASE] 
     at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) 
~[spring-beans-4.2.7.RELEASE.jar:4.2.7.RELEASE] 
     at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331) 
~[spring-beans-4.2.7.RELEASE.jar:4.2.7.RELEASE] 
     ... 17 common frames omitted Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot 
find class [org.springframework.mail.javamail.JavaMailSenderImpl] for 
bean with name 'mailSender' defined in URL 
[file:/C:/Users/guptra8/workspace_md5/asg/src/main/resources/applicationContext.xml]; 
nested exception is java.lang.ClassNotFoundException: 
org.springframework.mail.javamail.JavaMailSenderImpl 
     at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1352) 
~[spring-beans-4.2.7.RELEASE.jar:4.2.7.RELEASE] 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:628) 
~[spring-beans-4.2.7.RELEASE.jar:4.2.7.RELEASE] 

回答

0

在的問題,我可以看到你使用的是春天開機,所以只需添加下面的依賴在你的項目

<dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-mail</artifactId> 
    </dependency> 

而且在application.properties添加適當的值到下面的鍵。

下面是添加Gmail作爲您的郵件發件人

spring.mail.host=smtp.gmail.com 
spring.mail.port=465 
spring.mail.protocol=smtps 
spring.mail.username=###@gmail.com 
spring.mail.password=##### 
spring.mail.properties.mail.transport.protocol=smtps 
spring.mail.properties.mail.smtps.auth=true 
spring.mail.properties.mail.smtps.starttls.enable=true 
spring.mail.properties.mail.smtps.timeout=2000 

,然後在你的服務類自動裝配JavaMailSender樣品,你可以使用它。

示例實現代碼here

0

我敢打賭沒有在classpath名爲org.springframework.mail.javamail.JavaMailSenderImp類。確保你只創建現有類的bean。

如果您正在使用Eclipse,可以在.classpath文件驗證這

的.classpath

類路徑指定哪些J​​ava源文件和資源文件在 項目由Java考慮並指定如何在項目之外找到 類型。 Java構建器將Java 源文件編譯到輸出文件夾中,並將資源複製到 中。

相關問題