`

Spring发送邮件示例中的错误:Error creating bean with name 'javaMailSender '

阅读更多

Spring中的配置文件applicationContext.xml

<!-- spring对email支持 -->
	<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
		<property name="host" value="smtp.163.com"/>
		<property name="javaMailProperties">
			<props>
                <prop key="mail.smtp.auth">true</prop>
				<prop key="mail.smtp.timeout">25000</prop>
			</props>
		</property>
		<property name="username" value="spring_test"/>
		<property name="password" value="123456"/>
	</bean>

	<bean id="mailMessage"  class="org.springframework.mail.SimpleMailMessage">
		<property name="from" value="spring_test@163.com"/>
		<property name="subject" value="竞价通知"/>
	</bean>

 出错信息:

Exception   in   thread   "main "   org.springframework.beans.factory.BeanCreationException:   Error   creating   bean   with   name   'javaMailSender '   defined   in   file   [C:\wang\j2ee\shop\MailSender.xml]:   Instantiation   of   bean   failed;   nested   exception   is   org.springframework.beans.BeanInstantiationException:   Could   not   instantiate   bean   class   [org.springframework.mail.javamail.JavaMailSenderImpl]:   Constructor   threw   exception;   nested   exception   is   java.lang.NoClassDefFoundError:   com/sun/mail/util/LineInputStream 
Caused   by:   org.springframework.beans.BeanInstantiationException:   Could   not   instantiate   bean   class   [org.springframework.mail.javamail.JavaMailSenderImpl]:   Constructor   threw   exception;   nested   exception   is   java.lang.NoClassDefFoundError:   com/sun/mail/util/LineInputStream 
Caused   by:   java.lang.NoClassDefFoundError:   com/sun/mail/util/LineInputStream

 

问题来源:

J2EE版本冲突问题

 

解决方法:

将J2EE版本Java EE5 改用j2EE1.4
在lib下添加J2EE中的mail.jar和activation.jar

 

分享到:
评论
1 楼 nongfushanquan_xp 2010-05-03  
我在使用spring发送邮件时,碰到了类似的问题,但是按照你的方法不能解决。我的项目是S2SH的。下面的是错误信息。
2010-5-3 0:01:16 freemarker.log.JDK14LoggerFactory$JDK14Logger error
严重: 

get(message) failed on instance of org.springframework.mail.MailSendException
The problematic instruction:
----------
==> if ex.message?? [on line 41, column 5 in org/apache/struts2/dispatcher/error.ftl]
----------

Java backtrace for programmers:
----------
freemarker.template.TemplateModelException: get(message) failed on instance of org.springframework.mail.MailSendException
	at freemarker.ext.beans.BeanModel.get(BeanModel.java:223)
	at freemarker.core.Dot._getAsTemplateModel(Dot.java:76)
	at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
	at freemarker.core.ExistsExpression._getAsTemplateModel(ExistsExpression.java:71)
	at freemarker.core.Expression.getAsTemplateModel(Expression.java:89)
	at freemarker.core.Expression.isTrue(Expression.java:138)
	at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:77)
	at freemarker.core.Environment.visit(Environment.java:209)
	at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:167)
	at freemarker.core.Environment.visit(Environment.java:416)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102)
	at freemarker.core.Environment.visit(Environment.java:209)
	at freemarker.core.MixedContent.accept(MixedContent.java:92)
	at freemarker.core.Environment.visit(Environment.java:209)
	at freemarker.core.Environment.process(Environment.java:189)
	at freemarker.template.Template.process(Template.java:237)
	at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:748)
	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:505)
	at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:840)
	at freemarker.ext.beans.BeanModel.invokeThroughDescriptor(BeanModel.java:276)
	at freemarker.ext.beans.BeanModel.get(BeanModel.java:183)
	... 35 more
Caused by: java.lang.NullPointerException
	at org.springframework.mail.MailSendException.getMessage(MailSendException.java:111)
	... 42 more
2010-5-3 0:01:16 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.IllegalStateException
	at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407)
	at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:752)
	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:505)
	at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
	at java.lang.Thread.run(Thread.java:619)



我的发送邮件的配置:
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
		<property name="host">
			<value>smtp.gmail.com </value>
		</property>
		<property name="username">
			<value>xupeng86626@gmail.com</value>
		</property>
		<property name="password">
			<value>12345678(</value>
		</property>
		<property name="port">
			<value>465</value>
		</property>
		<!--如果服务器要求验证,加上此-->
		<property name="javaMailProperties">
			<props>
				<prop key="mail.smtp.auth">true</prop>
				<prop key="mail.smtp.timeout">25000</prop>
				<prop key="mai.smtp.starttls.enable">true</prop>
			</props>
		</property>
		
	</bean>

	<bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">
		<property name="from">
			<value>xupeng86626@gmail.com</value>
		</property>
	</bean>
	
	<bean id="mailManager" class="com.ssfm.service.impl.MailManagerImpl">
		<property name="mailSender" ref="mailSender"/>
		<property name="mailMessage" ref="mailMessage"/>
	</bean>

相关推荐

Global site tag (gtag.js) - Google Analytics