Java发邮件的用户名有时候不能使用带后缀的用户名。
使用jbpm时jbpm.mail.preperties有以下几组配置
#Gmail
#mail.smtp.host=smtp.gmail.com
#mail.smtp.port=25
#mail.from=herosea &at gmail &dot com
#mail.debug=true
#mail.smtp.starttls.enable=true
#mail.smtp.auth=true
如果设置了mail.smtp.user不设mail.from则发送的地址设为 ${mail.smtp.user}@机器名。
mail.from不是可以验证的邮件地址时会报错。
mail.debug=true在调试时可以看到准确的原因。
jbpm.default.cfg.xml中添加如下段
<mail-session>
<mail-server>
<!-- address-filter>
<include>.+@.company.com.cn</include>
</address-filter-->
<session-properties resource="jbpm.mail.properties" />
<authenticator class="com.impl.TestAuthenticator">
<field name="userName"><string value="yourname"/></field>
<field name="password"><string value="*****"/></field>
</authenticator>
</mail-server>
</mail-session>
TestAuthenticator.java文件
package com.service.impl;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
/**
* @author test
* 简单的实现认证接口
*/
public class TestAuthenticator extends Authenticator {
private String userName;
private String password;
private PasswordAuthentication passwordAuthentication;
public TestAuthenticator() {
super();
// TODO Auto-generated constructor stub
}
public TestAuthenticator(String userName, String password) {
setUserName(userName);
setPassword(password);
}
public void setUserName(String userName) {
this.userName = userName;
}
public void setPassword(String password) {
this.password = password;
}
protected PasswordAuthentication getPasswordAuthentication() {
if(passwordAuthentication == null){
passwordAuthentication = new PasswordAuthentication(userName, password);
}
return passwordAuthentication;
}
}
配置的工作流
<mail g='200,98,90,50' name='测试邮件节点'>
<to addresses='grandsea2010@gmail.com'/>
<subject>Hello</subject>
<html>没有什么原因啊!html</html>
<transition g='306,123;306,59:0,-1' to='人工 1'/>
</mail>
发出的邮件正文为乱码。
可以修改jbpm的源码
org.jbpm.pvm.internal.email.impl.MailProducerImpl
将 htmlPart.setContent(html, "text/html"); 改为 htmlPart.setContent(html, "text/html;charset=gbk");
<mail-session>貌似不能出现在两个jbpm配置文件中
jbpm4的流程文件没有定义格式是因为可以完全自定义,在解析的时候可以复用JpdlParser中的邮件解析,定时器解析等等。
jbpm4的事件模型还看不明白。
自定义MailProducer很麻烦,mailTemplate尤其是inline的不会自动注入到MailProducer中。
TaskRemind
这个每隔一段时间提醒一次的事件原理是这样的。
在ObservableElementImpl上获得remind事件 event,
新建一个MailListener叫eventListener,并将其和remind事件关联event.createEventListenerReference(eventListener)。
scopeElement.createTimerDefinition()创建一个定时器timerDefinition,从xml中获取定时器的详细配置。
timerDefinition.setEventName(Event.REMIND)定时触发remind事件。
正则表达式的上下文由多个上下文组成
ExecutionContext是默认最高优先级的上下文,可以自定义一个放在其前面。MailListener就定义了TaskContext至于其前面。
jbpm内部定义的很多接口是给其他流程定义语言准备的,要换的话可能需要整套都换掉。(猜测)
可能正则表达式的Context也是jbpm的context。(猜测)
发短信接口实现(猜想):
仿照org.jbpm.pvm.internal.wire.binding.MailTemplateBinding解析一个短信模板。
仿照邮件包org.jbpm.pvm.internal.email.spi中的接口定义发短信的3个接口。
自定义binding要注意的两个方面:
jbpm.user.wire.binding.xml文件在src目录下,不在任何包内。
集成WireDescriptorBinding的类需要一个没有参数的构造函数。
我为发短信定义了mobile-template标签,他的name属性的取值不能和mail-template的一样,否则会出错。说是上下文中找不到我模板的注册类。
分享到:
相关推荐
jbpm4的核心jar包包括jbpm.jar和jbpm-spring.jar,以及lib目录下的其他相关jar包,这些库文件需根据项目的具体需求进行选择性导入。 配置文件是整合的关键部分,例如jbpm.cfg.xml是jbpm的主要配置文件,通常需要...
4. **mail.jar**: 此文件是JavaMail API的一个实现,通常用于发送电子邮件。在JBPM中,这可能用于触发基于邮件的通知或工作流步骤,比如当某个任务完成或者需要用户介入时发送提醒。 这些JAR文件的组合表明,这个...
jbpm-jpdl-update.jar文件可能是jbpm3.2的一个更新版本或者补丁包,旨在修复原版jbpm-jpdl.jar中的问题或添加新功能。在软件开发中,发布这样的更新包是常见的做法,以保持软件的稳定性和兼容性。如果你遇到了使用...
为了调试和测试,开发者可能还使用了jbpm的控制台(jbpm-console),这是一个基于Web的界面,可以查看流程实例、任务列表以及执行其他管理操作。开发者可能通过控制台启动流程实例,观察邮件发送功能是否正常工作。 ...
9. **mailapi_1_3_1.jar** - 可能是JavaMail API的实现,用于发送和接收电子邮件。 10. **wsdl4j-1.5.1.jar** - WSDL4J是一个用于处理WSDL(Web服务描述语言)的Java库,用于解析和生成WSDL文档。 综上所述,这个...
· jbpm-jpdl-suite-3.2.3.zip · activiti-5.15.1.zip 其它 · spring-modules-0.9.zip · poi-src-3.5-FINAL-20090928.zip · poi-bin-3.5-FINAL-20090928.zip · slf4j-1.6.1.zip · pinyin4j-...
### 基于jbpm与activiti的工作流平台技术架构介绍 #### 一、宏天BPM X3软件平台概述 宏天BPM X3软件平台是一款基于J2EE技术的开源、轻量级的企业业务开发平台。该平台旨在帮助用户以最快的速度梳理、设计、执行、...
- 功能模块:系统管理、人力资源档案、薪酬管理、调动管理等,通过RBAC1实现权限控制,用JBPM4处理工作流。 - 技术要点: - 使用Struts2作为前端控制器,Hibernate处理数据持久化,Spring管理依赖。 - dom4j用于...
JBPM是一个开源的业务流程管理系统,它可以与JavaMail结合,当业务流程中有邮件通知的步骤时,自动发送邮件。 总的来说,这个ZIP文件包含了一个使用JavaMail API发送邮件的DEMO,可能还涉及了通过邮件进行业务流程...
整合了EXT3、Ajax、Spring、Struts、SpringSecurity、SpringAOP、Hibernate、JBPM、JasperReport、JAVAMail等先进开源技术,形成了强大而灵活的开发平台,易于升级和扩展,兼顾了系统的柔性和开放性。 #### 二、EST...
Java中的工作流框架如Activiti、jBPM等,提供了图形化的流程设计工具和强大的执行引擎。Section7_Workflow会介绍如何使用这些框架来定义和执行复杂的工作流程,以及如何集成到Java应用程序中,实现灵活的业务规则...
- **JavaMail**:发送和接收电子邮件的功能。 #### Java EE 高级工程师 - **分布式开发技术**:使用 JBoss、WebLogic、WebSphere 等应用服务器。 - **工作流引擎**:如 JBPM。 - **规则引擎**:如 Drools。 - **...
4. **前端技术**:掌握了JSP、XML、HTML、Ajax和jQuery等用于构建用户界面的技术,同时了解jbpm,这可能涉及到工作流管理。 5. **开发工具与服务器**:求职者能熟练使用开发工具MyEclipse,并能配置和部署Web服务器...
6. **开发模式与工具**:熟悉MVC(模型-视图-控制器)开发模式,以及Lucene全文搜索引擎、jbpm工作流和Webservice技术。同时,能熟练使用Tomcat服务器、Linux服务器搭建、SVN版本控制和Junit调试工具。 7. **其他...
4. 通知与提醒:通过邮件、短信等方式及时通知用户处理待办事项,可以集成JavaMail API或第三方服务,如SendGrid。 5. 组件化设计:使用MVC(Model-View-Controller)设计模式,将业务逻辑、数据模型和用户界面分离...
技术要点包括MVC设计模式、Hibernate对象持久化、Spring管理控制层、AOP日志维护、DWR和JQuery增强交互、RBAC1权限控制以及JBPM工作流。在该项目中,程序员主要负责绩效考核和培训模块。 客户关系管理系统则用于...
4. 通知公告:发布和接收公司内部的通知,利用JavaMail API发送邮件,或者使用WebSocket进行实时推送。 5. 报表统计:通过SQL查询生成各种业务报表,可能结合了JFreeChart或Apache POI等库来呈现数据。 6. 外文...