JBPM5.4配置参考:
http://panyongzheng.iteye.com/blog/1879279
本文参考: https://community.jboss.org/thread/201336
发送邮件的功能,只有三个控件,开始事件,邮件事件,结束时间。
dpmn文件:
java代码:
EmailWorkItemHandler emailHandler1 = new EmailWorkItemHandler();
emailHandler1.setConnection("smtp.163.com", "25", "abc@163.com", "123");
emailHandler1.getConnection().setStartTls(true);
ksession.getWorkItemManager().registerWorkItemHandler("Email", emailHandler1);
本文参考: https://community.jboss.org/thread/201336
发送邮件的功能,只有三个控件,开始事件,邮件事件,结束时间。
dpmn文件:
- <?xml version="1.0" encoding="UTF-8"?>
- <definitions id="Definition"
- targetNamespace="http://www.jboss.org/drools"
- typeLanguage="http://www.java.com/javaTypes"
- expressionLanguage="http://www.mvel.org/2.0"
- xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"
- xmlns:g="http://www.jboss.org/drools/flow/gpd"
- xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
- xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
- xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
- xmlns:tns="http://www.jboss.org/drools">
- <process processType="Private" isExecutable="true" id="com.sample.email.bpmn" name="Sample Process" tns:packageName="defaultPackage" >
- <!-- nodes -->
- <startEvent id="_1" name="StartProcess" />
- <endEvent id="_2" name="End" >
- <terminateEventDefinition/>
- </endEvent>
- <task id="_3" name="Email" tns:taskName="Email" >
- <ioSpecification>
- <dataInput id="_3_BodyInput" name="Body" />
- <dataInput id="_3_SubjectInput" name="Subject" />
- <dataInput id="_3_ToInput" name="To" />
- <dataInput id="_3_FromInput" name="From" />
- <inputSet>
- <dataInputRefs>_3_BodyInput</dataInputRefs>
- <dataInputRefs>_3_SubjectInput</dataInputRefs>
- <dataInputRefs>_3_ToInput</dataInputRefs>
- <dataInputRefs>_3_FromInput</dataInputRefs>
- </inputSet>
- <outputSet>
- </outputSet>
- </ioSpecification>
- <dataInputAssociation>
- <targetRef>_3_BodyInput</targetRef>
- <assignment>
- <from xsi:type="tFormalExpression">This is a test mail.</from>
- <to xsi:type="tFormalExpression">_3_BodyInput</to>
- </assignment>
- </dataInputAssociation>
- <dataInputAssociation>
- <targetRef>_3_SubjectInput</targetRef>
- <assignment>
- <from xsi:type="tFormalExpression">JBPM5.4 Email Event</from>
- <to xsi:type="tFormalExpression">_3_SubjectInput</to>
- </assignment>
- </dataInputAssociation>
- <dataInputAssociation>
- <targetRef>_3_ToInput</targetRef>
- <assignment>
- <from xsi:type="tFormalExpression">1453261799@qq.com</from>
- <to xsi:type="tFormalExpression">_3_ToInput</to>
- </assignment>
- </dataInputAssociation>
- <dataInputAssociation>
- <targetRef>_3_FromInput</targetRef>
- <assignment>
- <from xsi:type="tFormalExpression">pandy_test@163.com</from>
- <to xsi:type="tFormalExpression">_3_FromInput</to>
- </assignment>
- </dataInputAssociation>
- </task>
- <!-- connections -->
- <sequenceFlow id="_3-_2" sourceRef="_3" targetRef="_2" />
- <sequenceFlow id="_1-_3" sourceRef="_1" targetRef="_3" />
- </process>
- <bpmndi:BPMNDiagram>
- <bpmndi:BPMNPlane bpmnElement="com.sample.email.bpmn" >
- <bpmndi:BPMNShape bpmnElement="_1" >
- <dc:Bounds x="47" y="157" width="48" height="48" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="_2" >
- <dc:Bounds x="704" y="150" width="48" height="48" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="_3" >
- <dc:Bounds x="349" y="156" width="100" height="48" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge bpmnElement="_3-_2" >
- <di:waypoint x="399" y="180" />
- <di:waypoint x="728" y="174" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="_1-_3" >
- <di:waypoint x="71" y="181" />
- <di:waypoint x="399" y="180" />
- </bpmndi:BPMNEdge>
- </bpmndi:BPMNPlane>
- </bpmndi:BPMNDiagram>
- </definitions>
<?xml version="1.0" encoding="UTF-8"?>
<definitions id="Definition"
targetNamespace="http://www.jboss.org/drools"
typeLanguage="http://www.java.com/javaTypes"
expressionLanguage="http://www.mvel.org/2.0"
xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"
xmlns:g="http://www.jboss.org/drools/flow/gpd"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
xmlns:tns="http://www.jboss.org/drools">
<process processType="Private" isExecutable="true" id="com.sample.email.bpmn" name="Sample Process" tns:packageName="defaultPackage" >
<!-- nodes -->
<startEvent id="_1" name="StartProcess" />
<endEvent id="_2" name="End" >
<terminateEventDefinition/>
</endEvent>
<task id="_3" name="Email" tns:taskName="Email" >
<ioSpecification>
<dataInput id="_3_BodyInput" name="Body" />
<dataInput id="_3_SubjectInput" name="Subject" />
<dataInput id="_3_ToInput" name="To" />
<dataInput id="_3_FromInput" name="From" />
<inputSet>
<dataInputRefs>_3_BodyInput</dataInputRefs>
<dataInputRefs>_3_SubjectInput</dataInputRefs>
<dataInputRefs>_3_ToInput</dataInputRefs>
<dataInputRefs>_3_FromInput</dataInputRefs>
</inputSet>
<outputSet>
</outputSet>
</ioSpecification>
<dataInputAssociation>
<targetRef>_3_BodyInput</targetRef>
<assignment>
<from xsi:type="tFormalExpression">This is a test mail.</from>
<to xsi:type="tFormalExpression">_3_BodyInput</to>
</assignment>
</dataInputAssociation>
<dataInputAssociation>
<targetRef>_3_SubjectInput</targetRef>
<assignment>
<from xsi:type="tFormalExpression">JBPM5.4 Email Event</from>
<to xsi:type="tFormalExpression">_3_SubjectInput</to>
</assignment>
</dataInputAssociation>
<dataInputAssociation>
<targetRef>_3_ToInput</targetRef>
<assignment>
<from xsi:type="tFormalExpression">1453261799@qq.com</from>
<to xsi:type="tFormalExpression">_3_ToInput</to>
</assignment>
</dataInputAssociation>
<dataInputAssociation>
<targetRef>_3_FromInput</targetRef>
<assignment>
<from xsi:type="tFormalExpression">pandy_test@163.com</from>
<to xsi:type="tFormalExpression">_3_FromInput</to>
</assignment>
</dataInputAssociation>
</task>
<!-- connections -->
<sequenceFlow id="_3-_2" sourceRef="_3" targetRef="_2" />
<sequenceFlow id="_1-_3" sourceRef="_1" targetRef="_3" />
</process>
<bpmndi:BPMNDiagram>
<bpmndi:BPMNPlane bpmnElement="com.sample.email.bpmn" >
<bpmndi:BPMNShape bpmnElement="_1" >
<dc:Bounds x="47" y="157" width="48" height="48" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_2" >
<dc:Bounds x="704" y="150" width="48" height="48" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="_3" >
<dc:Bounds x="349" y="156" width="100" height="48" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="_3-_2" >
<di:waypoint x="399" y="180" />
<di:waypoint x="728" y="174" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="_1-_3" >
<di:waypoint x="71" y="181" />
<di:waypoint x="399" y="180" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
java代码:
- package com.gds.web;
- import static org.springframework.web.bind.annotation.RequestMethod.GET;
- import static org.springframework.web.bind.annotation.RequestMethod.POST;
- import static org.springframework.web.bind.annotation.RequestMethod.PUT;
- import java.io.ByteArrayOutputStream;
- import java.io.IOException;
- import java.io.ObjectOutputStream;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
- import javax.annotation.Resource;
- import org.apache.log4j.Logger;
- import org.drools.command.Context;
- import org.drools.command.impl.GenericCommand;
- import org.drools.command.impl.KnowledgeCommandContext;
- import org.drools.runtime.StatefulKnowledgeSession;
- import org.drools.runtime.process.WorkflowProcessInstance;
- import org.jbpm.process.core.context.variable.VariableScope;
- import org.jbpm.process.instance.context.variable.VariableScopeInstance;
- import org.jbpm.process.workitem.email.EmailWorkItemHandler;
- import org.jbpm.process.workitem.wsht.LocalHTWorkItemHandler;
- import org.jbpm.task.Task;
- import org.jbpm.task.TaskData;
- import org.jbpm.task.TaskService;
- import org.jbpm.task.query.TaskSummary;
- import org.jbpm.task.service.ContentData;
- import org.jbpm.task.utils.ContentMarshallerHelper;
- import org.springframework.beans.factory.annotation.Qualifier;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.ModelAttribute;
- import org.springframework.web.bind.annotation.PathVariable;
- import org.springframework.web.bind.annotation.RequestMapping;
- import com.gds.jbpm.MyLocalTaskService;
- import com.gds.jbpm.Order;
- @Controller
- public class EmailController {
- private Logger log = Logger.getLogger(this.getClass());
- @Resource
- @Qualifier("myLocalTaskService")
- private MyLocalTaskService myLocalTaskService;
- @Resource
- @Qualifier("ksession")
- private StatefulKnowledgeSession ksession;
- public void registerWorkItemHandler() {
- LocalHTWorkItemHandler humanTaskHandler = new LocalHTWorkItemHandler(
- myLocalTaskService.getLocalTaskService(), ksession);
- humanTaskHandler.setLocal(true);
- humanTaskHandler.connect();
- ksession.getWorkItemManager().registerWorkItemHandler("Human Task",
- humanTaskHandler);
- System.out
- .println("----------------------------------------------------->LocalHTWorkItemHandler");
- EmailWorkItemHandler emailHandler1 = new EmailWorkItemHandler();
- emailHandler1.setConnection("smtp.163.com", "25", "abc@163.com", "123");
- emailHandler1.getConnection().setStartTls(true);
- ksession.getWorkItemManager().registerWorkItemHandler("Email", emailHandler1);
- System.out
- .println("----------------------------------------------------->EmailWorkItemHandler");
- }
- @RequestMapping(value = "email.do", method = { GET, POST, PUT })
- public String doCreate(Model model) {
- System.out.println("JBPM5.4的邮件测试");
- ksession = myLocalTaskService.getKsession();
- registerWorkItemHandler();
- ksession.startProcess("com.sample.email.bpmn");
- ksession.fireAllRules();
- model.addAttribute("message", "process created!");
- return "create";
- }
- }
package com.gds.web;
import static org.springframework.web.bind.annotation.RequestMethod.GET;
import static org.springframework.web.bind.annotation.RequestMethod.POST;
import static org.springframework.web.bind.annotation.RequestMethod.PUT;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.log4j.Logger;
import org.drools.command.Context;
import org.drools.command.impl.GenericCommand;
import org.drools.command.impl.KnowledgeCommandContext;
import org.drools.runtime.StatefulKnowledgeSession;
import org.drools.runtime.process.WorkflowProcessInstance;
import org.jbpm.process.core.context.variable.VariableScope;
import org.jbpm.process.instance.context.variable.VariableScopeInstance;
import org.jbpm.process.workitem.email.EmailWorkItemHandler;
import org.jbpm.process.workitem.wsht.LocalHTWorkItemHandler;
import org.jbpm.task.Task;
import org.jbpm.task.TaskData;
import org.jbpm.task.TaskService;
import org.jbpm.task.query.TaskSummary;
import org.jbpm.task.service.ContentData;
import org.jbpm.task.utils.ContentMarshallerHelper;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import com.gds.jbpm.MyLocalTaskService;
import com.gds.jbpm.Order;
@Controller
public class EmailController {
private Logger log = Logger.getLogger(this.getClass());
@Resource
@Qualifier("myLocalTaskService")
private MyLocalTaskService myLocalTaskService;
@Resource
@Qualifier("ksession")
private StatefulKnowledgeSession ksession;
public void registerWorkItemHandler() {
LocalHTWorkItemHandler humanTaskHandler = new LocalHTWorkItemHandler(
myLocalTaskService.getLocalTaskService(), ksession);
humanTaskHandler.setLocal(true);
humanTaskHandler.connect();
ksession.getWorkItemManager().registerWorkItemHandler("Human Task",
humanTaskHandler);
System.out
.println("----------------------------------------------------->LocalHTWorkItemHandler");
EmailWorkItemHandler emailHandler1 = new EmailWorkItemHandler();
emailHandler1.setConnection("smtp.163.com", "25", "abc@163.com", "123");
emailHandler1.getConnection().setStartTls(true);
ksession.getWorkItemManager().registerWorkItemHandler("Email", emailHandler1);
System.out
.println("----------------------------------------------------->EmailWorkItemHandler");
}
@RequestMapping(value = "email.do", method = { GET, POST, PUT })
public String doCreate(Model model) {
System.out.println("JBPM5.4的邮件测试");
ksession = myLocalTaskService.getKsession();
registerWorkItemHandler();
ksession.startProcess("com.sample.email.bpmn");
ksession.fireAllRules();
model.addAttribute("message", "process created!");
return "create";
}
}
EmailWorkItemHandler emailHandler1 = new EmailWorkItemHandler();
emailHandler1.setConnection("smtp.163.com", "25", "abc@163.com", "123");
emailHandler1.getConnection().setStartTls(true);
ksession.getWorkItemManager().registerWorkItemHandler("Email", emailHandler1);
本文介绍如何使用JBPM5.4配置邮件发送功能,包括定义流程、设置邮件参数及启动流程等内容。



1610

被折叠的 条评论
为什么被折叠?



