在Spring中使用javaMail的项目发布问题解决
程序员文章站
2022-04-04 21:56:44
...
在项目中实现了用Spring中的JavaMailSenderImpl发送邮件,在applicationContext.xml文件配置如下,
<!-- JavaMail服务bean -->
<bean id="javaMailSender"
class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host">
<value>smtp.163.com</value>
</property>
<property name="username">
<value>lihaiyancarter11</value>
</property>
<property name="password">
<value>7152</value>
</property>
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.timeout">25000</prop>
</props>
</property>
</bean>
<bean id="javaMailSender"
class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host">
<value>smtp.163.com</value>
</property>
<property name="username">
<value>lihaiyancarter11</value>
</property>
<property name="password">
<value>7152</value>
</property>
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.timeout">25000</prop>
</props>
</property>
</bean>
直接测试时没有问题,但在发布到Tomcat服务器时就有问题了,
15:43:55,608 ERROR ContextLoader:211 - Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: Error registering bean with name 'javaMailSender' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Class that bean class [org.springframework.mail.javamail.JavaMailSenderImpl] depends on not found; nested exception is java.lang.NoClassDefFoundError: javax/mail/MessagingException
java.lang.NoClassDefFoundError: javax/mail/MessagingException
org.springframework.beans.factory.BeanDefinitionStoreException: Error registering bean with name 'javaMailSender' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Class that bean class [org.springframework.mail.javamail.JavaMailSenderImpl] depends on not found; nested exception is java.lang.NoClassDefFoundError: javax/mail/MessagingException
java.lang.NoClassDefFoundError: javax/mail/MessagingException
搞了很久都不明白是什么回事,因为在测试时都没有问题,而且提示中的包在项目里都有.最后通过网上搜索把问题解决了,
原来在使用Spring这样的框架的一些丰富功能时,都要在完整的J2EE容器下运行,因为Spring只不过提供J2EE容器功能的又一种调
用方式罢了,所以把j2ee中的activation.jar,和mail.jar包复制到Tomcat中的common/lib目录下就发布成功了.
推荐阅读
-
web.py在SAE中的Session问题解决方法(使用mysql存储)
-
asp.net mvc项目使用spring.net发布到IIS后,在访问提示错误 Could not load type from string value 'DALMsSql.DBSessionFactory,DALMsSql'.
-
Vue 2.0在IE11中打开项目页面空白的问题解决
-
asp.net mvc 简单项目框架的搭建(二)—— Spring.Net在Mvc中的简单应用
-
在servlet中如何使用被Spring管理的service
-
在servlet中如何使用被Spring管理的service
-
spring注解:@Value在使用中遇到的问题
-
嵌入式Redis服务器在Spring Boot测试中的使用教程
-
Spring在IOC容器中,使用配置文件创建对象,基本思路是什么样的?
-
web.py在SAE中的Session问题解决方法(使用mysql存储)