在看《深入迁出JBPM》一书,随书做邮件任务提醒的练习时按照书上的源码来出现了错误:
org.jbpm.JbpmException: couldn't send email。
一开始我的jbpm.cfg.xml是这样的:
<String name="jbpm.mail.smtp.host" value="smtp.sina.com" /> <bean name="jbpm.mail.address.resolver" class="com.tasknotifytest.TestMailResolver" singleton="true" /> <String name="jbpm.mail.from.address" value="lihong2002.student@sina.com" />其中TestMailResolver是自定义的邮件解析类。
在高杰博客(http://jacky6024.javaeye.com/blog/317480)里面谈到的解决方案是:
<String name="jbpm.mail.smtp.host" value="smtp.sina.com" /> <bean name="jbpm.mail.address.resolver" class="com.tasknotifytest.TestMailResolver" singleton="true" /> <String name="jbpm.mail.from.address" value="lihong2002.student@sina.com" /> <!-- 邮件安全验证 --> <string name="jbpm.mail.smtp.auth" value="true" /> <!-- 用户名 --> <string name="jbpm.mail.user" value="lihong2002.student@sina.com" /> <!-- 密码 --> <string name="jbpm.mail.password" value="*********" />
但是这个办法仍然不能解决上面的问题,
愁眉不展时,在javaeye看到一为大牛的终极解决方案,http://royzhou1985.javaeye.com/blog/430304 ,圆满解决了我的问题。
按着那个步骤重新配置了jbpm.cfg.xml为:
<String name="jbpm.mail.smtp.host" value="smtp.sina.com" /> <bean name="jbpm.mail.address.resolver" class="com.tasknotifytest.TestMailResolver" singleton="true" /> <String name="jbpm.mail.from.address" value="lihong2002.student@sina.com" />
<!-- 自定义的邮件发送类 --> <string name="mail.class.name" value="com.tasknotifytest.Mail" /> <string name="resource.mail.properties" value="jbpm.mail.properties" />
<!-- 邮件安全验证 --> <string name="jbpm.mail.smtp.auth" value="true" />
其中jbpm.mail.properties为自定义的属性文件:
mail.smtp.host=smtp.sina.commail.smtp.port=25mail.smtp.user=lihong2002.student@sina.commail.smtp.password=*********