Page 1 of 1

Unable to send email in Broadleaf V 3.0.0-GA

Posted: Wed Jul 17, 2013 6:14 am
by deepti
I am facing an issue while sending mail on using Broadleaf V 3.0.0-GA.
resetPasswordUrl is not null just before sending it to resetPassword-email template, but I wonder why its showing exceptions, the same code is working fine with V2.0 .

Please help, already 2 days wasted on this. Thanks in advance.

[artifact:mvn] emailAddress: DEEPTI23TYAGI@GMAIL.COM
[artifact:mvn] [ERROR] 16:24:42 TemplateEngine - [THYMELEAF][qtp8025338-57] Exception processing template "resetPassword-email": Exception evaluating SpringEL expression: "resetPasswordUrl" (resetPassword-email:7)
[artifact:mvn] org.springframework.mail.MailPreparationException: Could not prepare mail; nested exception is org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "resetPasswordUrl" (resetPassword-email:7)
[artifact:mvn] at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:367)
[artifact:mvn] at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:344)
[artifact:mvn] at org.broadleafcommerce.common.email.service.message.MessageCreator.sendMessage(MessageCreator.java:40)
[artifact:mvn] at org.broadleafcommerce.common.email.service.EmailServiceImpl.sendBasicEmail(EmailServiceImpl.java:79)
[artifact:mvn] at org.broadleafcommerce.common.email.service.EmailServiceImpl.sendTemplateEmail(EmailServiceImpl.java:48)
[artifact:mvn] at org.broadleafcommerce.common.email.service.EmailServiceImpl.sendTemplateEmail(EmailServiceImpl.java:55)
[artifact:mvn] at org.broadleafcommerce.profile.core.service.CustomerServiceImpl.sendForgotPasswordNotification(CustomerServiceImpl.java:345)
[artifact:mvn] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[artifact:mvn] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[artifact:mvn] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[artifact:mvn] at java.lang.reflect.Method.invoke(Method.java:601)
[artifact:mvn] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
[artifact:mvn] at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
[artifact:mvn] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
[artifact:mvn] at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)
[artifact:mvn] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)
[artifact:mvn] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
[artifact:mvn] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
[artifact:mvn] at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)
[artifact:mvn] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
[artifact:mvn] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
[artifact:mvn] at org.broadleafcommerce.core.web.controller.account.BroadleafLoginController.processForgotPassword(BroadleafLoginController.java:60)
[artifact:mvn] at com.siggitt.controller.account.LoginController.ajaxProcessForgotPassword(LoginController.java:69)
[artifact:mvn] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[artifact:mvn] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[artifact:mvn] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[artifact:mvn] at java.lang.reflect.Method.invoke(Method.java:601)
[artifact:mvn] at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
[artifact:mvn] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
[artifact:mvn] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
[artifact:mvn] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
[artifact:mvn] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
[artifact:mvn] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
[artifact:mvn] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
[artifact:mvn] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
[artifact:mvn] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
[artifact:mvn] at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)
[artifact:mvn] at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
[artifact:mvn] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
[artifact:mvn] at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
[artifact:mvn] at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:643)
[artifact:mvn] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1331)
[artifact:mvn] at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:169)
[artifact:mvn] at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:241)
[artifact:mvn] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1302)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
[artifact:mvn] at org.broadleafcommerce.core.web.order.security.CartStateFilter.doFilter(CartStateFilter.java:57)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn] at org.broadleafcommerce.common.web.filter.TranslationFilter.doFilter(TranslationFilter.java:48)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn] at org.broadleafcommerce.cms.web.URLHandlerFilter.doFilterInternal(URLHandlerFilter.java:71)
[artifact:mvn] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:166)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn] at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
[artifact:mvn] at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn] at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn] at org.broadleafcommerce.profile.web.core.security.SessionFixationProtectionFilter.doFilter(SessionFixationProtectionFilter.java:95)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn] at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn] at org.broadleafcommerce.profile.web.core.security.CustomerStateFilter.doFilter(CustomerStateFilter.java:53)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn] at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn] at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn] at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn] at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn] at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn] at org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:144)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
[artifact:mvn] at org.broadleafcommerce.common.web.BroadleafRequestFilter.doFilterInternal(BroadleafRequestFilter.java:97)
[artifact:mvn] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn] at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:180)
[artifact:mvn] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:166)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
[artifact:mvn] at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
[artifact:mvn] at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
[artifact:mvn] at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
[artifact:mvn] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1302)
[artifact:mvn] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:448)
[artifact:mvn] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
[artifact:mvn] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
[artifact:mvn] at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
[artifact:mvn] at org.eclipse.jetty.server.handler.ContextHandler.__doHandle(ContextHandler.java:1067)
[artifact:mvn] at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java)
[artifact:mvn] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:377)
[artifact:mvn] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192)
[artifact:mvn] at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1001)
[artifact:mvn] at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
[artifact:mvn] at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:250)
[artifact:mvn] at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)
[artifact:mvn] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111)
[artifact:mvn] at org.eclipse.jetty.server.Server.handle(Server.java:360)
[artifact:mvn] at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:454)
[artifact:mvn] at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:900)
[artifact:mvn] at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:954)
[artifact:mvn] at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:851)
[artifact:mvn] at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
[artifact:mvn] at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:77)
[artifact:mvn] at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:622)
[artifact:mvn] at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:46)
[artifact:mvn] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:603)
[artifact:mvn] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:538)
[artifact:mvn] at java.lang.Thread.run(Thread.java:722)
[artifact:mvn] Caused by: org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "resetPasswordUrl" (resetPassword-email:7)
[artifact:mvn] at org.thymeleaf.spring3.expression.SpelVariableExpressionEvaluator.evaluate(SpelVariableExpressionEvaluator.java:108)
[artifact:mvn] at org.thymeleaf.standard.expression.VariableExpression.executeVariable(VariableExpression.java:116)
[artifact:mvn] at org.thymeleaf.standard.expression.SimpleExpression.executeSimple(SimpleExpression.java:394)
[artifact:mvn] at org.thymeleaf.standard.expression.Expression.execute(Expression.java:231)
[artifact:mvn] at org.thymeleaf.standard.expression.StandardExpressionExecutor.executeExpression(StandardExpressionExecutor.java:70)
[artifact:mvn] at org.thymeleaf.standard.expression.StandardExpressionExecutor.executeExpression(StandardExpressionExecutor.java:58)
[artifact:mvn] at org.thymeleaf.standard.expression.StandardExpressionProcessor.executeExpression(StandardExpressionProcessor.java:124)
[artifact:mvn] at org.thymeleaf.standard.expression.StandardExpressionProcessor.processExpression(StandardExpressionProcessor.java:164)
[artifact:mvn] at org.thymeleaf.standard.processor.attr.AbstractStandardSingleAttributeModifierAttrProcessor.getTargetAttributeValue(AbstractStandardSingleAttributeModifierAttrProcessor.java:59)
[artifact:mvn] at org.thymeleaf.processor.attr.AbstractSingleAttributeModifierAttrProcessor.getModifiedAttributeValues(AbstractSingleAttributeModifierAttrProcessor.java:59)
[artifact:mvn] at org.thymeleaf.processor.attr.AbstractAttributeModifierAttrProcessor.processAttribute(AbstractAttributeModifierAttrProcessor.java:61)
[artifact:mvn] at org.thymeleaf.processor.attr.AbstractAttrProcessor.doProcess(AbstractAttrProcessor.java:74)
[artifact:mvn] at org.thymeleaf.processor.AbstractProcessor.process(AbstractProcessor.java:212)
[artifact:mvn] at org.thymeleaf.dom.Node.applyNextProcessor(Node.java:914)
[artifact:mvn] at org.thymeleaf.dom.Node.processNode(Node.java:869)
[artifact:mvn] at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:638)
[artifact:mvn] at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:620)
[artifact:mvn] at org.thymeleaf.dom.Node.processNode(Node.java:888)
[artifact:mvn] at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:638)
[artifact:mvn] at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:620)
[artifact:mvn] at org.thymeleaf.dom.Node.processNode(Node.java:888)
[artifact:mvn] at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:638)
[artifact:mvn] at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:620)
[artifact:mvn] at org.thymeleaf.dom.Node.processNode(Node.java:888)
[artifact:mvn] at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:638)
[artifact:mvn] at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:620)
[artifact:mvn] at org.thymeleaf.dom.Node.processNode(Node.java:888)
[artifact:mvn] at org.thymeleaf.dom.Document.process(Document.java:93)
[artifact:mvn] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1243)
[artifact:mvn] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1148)
[artifact:mvn] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1095)
[artifact:mvn] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1008)
[artifact:mvn] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:982)
[artifact:mvn] at org.broadleafcommerce.common.email.service.message.ThymeleafMessageCreator.buildMessageBody(ThymeleafMessageCreator.java:55)
[artifact:mvn] at org.broadleafcommerce.common.email.service.message.MessageCreator$1.prepare(MessageCreator.java:62)
[artifact:mvn] at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:352)
[artifact:mvn] ... 119 more
[artifact:mvn] Caused by: java.lang.NullPointerException
[artifact:mvn] at org.thymeleaf.spring3.expression.Themes.<init>(Themes.java:53)
[artifact:mvn] at org.thymeleaf.spring3.expression.SpelVariableExpressionEvaluator.computeExpressionObjects(SpelVariableExpressionEvaluator.java:165)
[artifact:mvn] at org.thymeleaf.spring3.expression.SpelVariableExpressionEvaluator.evaluate(SpelVariableExpressionEvaluator.java:88)
[artifact:mvn] ... 154 more

Re: Unable to send email in Broadleaf V 3.0.0-GA

Posted: Wed Jul 17, 2013 5:03 pm
by jskorton
deepti,

Please have a look at this recent Thymeleaf issue:

https://github.com/thymeleaf/thymeleaf-spring3/issues/26

It is fixed in the latest Thymeleaf snapshot that Broadleaf is not yet using.

Until then your problem should be fixable by first checking whether we are in an online (IWebContext) or offline (IContext) scenario before creating the Themes instance. You need to be in an online scenario until Broadleaf moves to the next version of Thymeleaf.

Re: Unable to send email in Broadleaf V 3.0.0-GA

Posted: Thu Jul 18, 2013 12:49 am
by deepti
Thank you so much jskorton for support. you saved my day.

I just rolled back the thymeleaf-spring3 version to 2.0.16 in my pom, and it worked perfectly. :)

If anyone face the same issue; please follow this link:

https://github.com/BroadleafCommerce/BroadleafCommerce/issues/158