Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Activiti ¼òÒ׽̳Ì
 
×÷Õߣºyangyi22 À´Ô´£ºCSDN ·¢²¼ÓÚ 2015-9-29
  2508  次浏览      29
 

Activiti ¼òÒ׽̳ÌÒ» version5.10

Ò»´î½¨»·¾³

1.1 JDK 6+

activiti ÔËÐÐÔÚ°æ±¾ 6ÒÔÉ쵀 JDKÉÏ¡£×ªµ½ Oracle Java SEÏÂÔØÒ³Ãæ£¬µã»÷°´Å¥¡°ÏÂÔØ JDK¡±¡£ÍøÒ³ÖÐÒ²Óа²×°ËµÃ÷¡£ÒªºËʵ°²×°ÊÇ·ñ³É¹¦£¬ÔÚÃüÁîÐÐÉÏÔËÐÐ java¨Cversion¡£½«´òÓ¡³ö°²×°µÄ JDKµÄ°æ±¾¡£

1.2 Ant 1.8.1+

´Ó Ant[http://ant.apache.org/bindownload.cgi]ÏÂÔØÒ³ÃæÏÂÔØ×îÐÂÎȶ¨°æµÄ Ant¡£½âѹÎļþ£¬È·±£Æä binÎļþ¼ÐÔÚ²Ù×÷ϵͳµÄ path Ï¡£ÔÚÃüÁîÐÐÉÏÔËÐÐ ant¨Cversion À´¼ì²é AntÊÇ·ñ°²×°³É¹¦¡£³É¹¦½«´òÓ¡°²×°µÄ Ant °æ±¾¡£

1.3 Eclipse 3.7+

´Ó EclipseµÄÏÂÔØÒ³ÃæÏÂÔØ Eclipse Classic(»òEclipse JEE)°æµÄ eclipse¡£½âѹÏÂÔØµÄÎļþ£¬È»ºó¾Í¿ÉÒÔÔËÐÐ eclipse·¾¶Ï嵀 eclipse ÎļþÁË¡£

ÏÂÔØµØÖ·£ºhttp://www.eclipse.org/downloads/packages/release/indigo/sr2

1.4 Activiti -eclipse designer²å¼þ°²×°

ÔÚ°²×°Activiti -eclipse designer²å¼þǰÏȰ²×°maven²å¼þ£¬m2e(eclipse)²å¼þÔÚInstall New SoftWare°²×°Ê±»á³öÏÖЩÎÊÌ⣬°´ÒÔϲ½Öè°²×°¼´¿É¡£

1.4.1 ÏȰ²×°GEF²å¼þ

maven²å¼þ°²×°µÄʱºò»áÒÀÀµÕâ¸ö²å¼þ£¬ÔÚEclipse -> help -> Install New SoftWareÖа²×°£¬update site:http://download.eclipse.org/tools/gef/updates/interim/

1.4.2 °²×°SVN²å¼þ

ÔÚEclipse -> help -> Install New SoftWareÖа²×°£¬update site:http://subclipse.tigris.org/update_1.6.x

1.4.3°²×°Maven²å¼þ

·½Ê½Ò»£ºÔÚÏß°²×°

ÔÚEclipse -> help -> Install New SoftWareÖа²×°£¬update site:http://nexus.tesla.io:8081/nexus/content/sites/m2e.extras/m2e/1.5.0/N/LATEST/

˳±ãeclipse m2eÖ§³Ösite£ºhttp://www.eclipse.org/m2e/download/

ÈçÔÚÏß°²×°²»³É¹¦£¬±¨[the selected did not contain any resources that can run on server maven project]´íÎ󣬽¨Òé²ÉÓ÷½Ê½¶þ°²×°¡£

·½Ê½¶þ£º±¾µØ°²×°

ÏÂÔØmavenºÍ eclipse-maven3-plugin²å¼þ£¨eclipse-maven3-pluginΪ±¾ÈËCSDNÉÏ´«£©

Maven site: http://ant.apache.org/bindownload.cgi

eclipse-maven3-plugin site: http://download.csdn.net/detail/yangyi22/5663245

ÔÚeclipseĿ¼Ï½¨Á¢mypluginsĿ¼£¬½«eclipse-maven3-plugin½âѹºóÎļþ¸´ÖƽøÈ¥£¬½¨Á¢linksĿ¼£¬Ð½¨maven.linkÎļþ£¨Ãû×ÖËæÒâÈ¡£©Ìí¼ÓÎı¾£º

path=¡­/eclipse/myplugins/maven£¬¼´ÈÃeclipseÆô¶¯Ê±È¥Ñ°ÕÒmypluginsÖеIJå¼þ£¬Èç±¾È˰²×°µÄ·¾¶£ºpath=D:/Java~coding~site /eclipse[indigo-jee]/eclipse/myplugins/maven

1.4.4 ×îºó°²×°Activiti -eclipse designer

´ò¿ª Help¨¤Install New Software¡£ÔÚÈçÏÂÃæ°åÖУ¬µã»÷Add°´Å¥£¬È»ºóÌîÈëÏÂÁÐ×ֶΣºlName£ºActiviti BPMN 2.0 designer

l Location£ºhttp://activiti.org/designer/update/

°²×°³É¹¦ºó£¬Ð½¨activitiÏîÄ¿£¬ÊÓͼÈçÏ£º

°²×°m2eclipse²å¼þºó£¬ÖØÆôEclipse£¬ÈçÌáʾ£º

Eclipse is running in a JRE, but a JDK is required

Some Maven plugins may not work when importing projects or updating source folders.

ÐèÒªÐÞ¸Äeclipse.iniÎļþ£¬ÐÂÔöÒ»ÏîÅäÖÃ

-vmÅäÖÃÏî±ØÐëÔÚ¨CvmargsÅäÖÃÏîǰ£¬ÊÇÒòΪִÐе½-vmargsÅäÖÃÏîÒѾ­Ñ¡ÔñÁËÒ»¸öĬÈϵÄJVMÁË¡£

ËùÒÔÔÚ¨CvmargsÇ°Ãæ¼ÓÉÏÕâÒ»¾ä£º

-vm

C:/Program Files/Java/jdk1.6.0_20/bin/javaw.exe

¶þ¿ªÊ¼activiti 5.10µÄµÚÒ»¸ödemo

2.1 ½¨Á¢activiti-demo¹¤³Ì£¬Ñ¡ÔñActiviti Project

´´½¨³É¹¦ºóµÄÏîÄ¿£º

¸øactiviti-demoÏîÄ¿Ìí¼ÓactivitiÒÀÀµ°ü£¬ÏîÄ¿ÓÒ¼üBuild Path->Configure Build Path->libraries -> Add External JarsÑ¡ÖС­\activiti-5.10\setup\files\dependencies\libsÏÂËùÓаüÌí¼Ó¼´¿É¡£

2.2 ½«activiti-demo¹¤³ÌµÄÊý¾Ý¿âÕûºÏΪMySQL

½«¡­\activiti-5.10\setup\build\activiti-cfgĿ¼ÏµÄactiviti.cfg.xmlÅäÖÃÎļþ¸´ÖƵ½ÏîÄ¿src\main\resourcesĿ¼Ï£¬ÐÞ¸ÄÊý¾Ý¿âÅäÖÃÈçÏ£º

<!-- Database configurations -->

<propertyname="jdbcUrl"

value="jdbc:mysql://localhost:3306/test?autoReconnect=true"/>

<propertyname="jdbcDriver"

value="com.mysql.jdbc.Driver"/>

<propertyname="jdbcUsername"value="root"/>

<propertyname="jdbcPassword"value="root"/>

<!-- Database configurations -->

<propertyname="databaseSchemaUpdate"value="true"/>

<!-- job executor configurations -->

<propertyname="jobExecutorActivate"value="false"/>

2.3 Éè¼Æactiviti-demo¹¤³ÌµÄÁ÷³Ì

ÔÚ¸ÃÏîÄ¿µÄsrc/main/resource/diagramsÏÂÓÒ¼ü´´½¨Activiti diagram£¬ÎļþÃûΪ£ºDemoProcess.bpmn¡£

´Ëʱ½øÈëActiviti Diagram Editor£¬ÔÚ¿Õ°×´¦µãһϣ¬Ï±ßÊôÐÔÀ¸ÖÐÉèÖÃidºÍname£¬id¾ÍÊÇÕâ¸öÁ÷³ÌµÄkey£¬ºó±ßÆô¶¯Á÷³ÌµÄʱºòʹÓõ½¡£

×¢Ò⣺Activiti 5.8Éý¼¶µ½5.9ÒÔºó£¬xxx.bpmn20.xmlºÍxxx.pngÒѲ»Ä¬ÈÏÉú³É£¬½ö½öÊÇÉú³Éxxx.bpmnÎļþ£¬ xxx.bpmnÖе͍ÒåÄÚÈݾÍÈçxxx.bpmn20.xmlÒ»Ñù¡£

ÁíÍ⣬¿ì½Ý²Ëµ¥£º¡°Create deployment artifacts¡±ºÍ¡°Import BPMN20 file¡±£¬ÔÚ5.9ÒÔºóÈ¥µôÁË¡£

ÈçÐèÉè¼ÆÍê³ÉÁ÷³Ìºó×Ô¶¯Éú³ÉÒ»¸öpngͼƬ°´ÈçÏ´¦Àí

l ±£´æÎÞ·¨Éú´æpngͼƬ°´ÒÔÏ´¦Àí

Window ¨C> Preferences -> Activiti ->Save¹´Ñ¡¼´¿É

»òÕßÊÖ¶¯²Ù×÷£ºÓÃActiviti Designer´ò¿ªxxx.bpmnÎļþ£¬È»ºóÓÒ¼üÑ¡ÔñExport Diagram...£¬ÔÚµ¯³öµÄ¶Ô»°¿òÖÐÉèÖÃͼƬµÄ²ÎÊý¼´¿É£¬Ò»°ãʹÓÃĬÈϾͿÉÒÔÁË¡£

ÔÚÉè¼Æ±à¼­Æ÷Öб£´æDemoProcess.bpmnºóµÄÏîÄ¿ÊÓͼÈçÏ£º

²âÊÔÀà´úÂë DemoProcessTest.java

package main.java;  

import java.io.FileInputStream;
import java.util.List;
import org.activiti.engine.HistoryService;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;

/**
* Activiti 5.10 demo
* @author BruceQin
*
*/
public class DemoProcessTest {
// diagramsʵ¼Ê·¾¶
private static String realPath =
"D:\\Java~coding~site\\J2EE-IDE\\Workspace\\workspace[indigo-jee]" +
"\\activiti-demo\\src\\main\\resources\\diagrams";
public static void main(String[] args) throws Exception {
// ´´½¨ ActivitiÁ÷³ÌÒýÇæ
ProcessEngine processEngine = ProcessEngineConfiguration
.createProcessEngineConfigurationFromResource("activiti.cfg.xml")
.buildProcessEngine();

// È¡µÃ Activiti ·þÎñ
RepositoryService repositoryService = processEngine.getRepositoryService();
RuntimeService runtimeService = processEngine.getRuntimeService();

// ²¿ÊðÁ÷³Ì¶¨Òå
repositoryService
.createDeployment()
.addInputStream("DemoProcess.bpmn",new FileInputStream(realPath + "\\DemoProcess.bpmn"))
.addInputStream("DemoProcess.png", new FileInputStream(realPath + <a href="file://\\DemoProcess.png">\\DemoProcess.png</a>))
.deploy();

// Æô¶¯Á÷³ÌʵÀý
ProcessInstance instance = processEngine
.getRuntimeService().startProcessInstanceByKey("DemoProcess");
String procId = instance.getId();
System.out.println("procId:"+ procId);

// »ñµÃµÚÒ»¸öÈÎÎñ
TaskService taskService = processEngine.getTaskService();
List<Task> tasks = taskService.createTaskQuery().taskDefinitionKey("firstTask").list();
for (Task task : tasks) {
System.out.println("Following task is: taskID -" +task.getId()+" taskName -"+ task.getName());
// ÈÏÁìÈÎÎñ
taskService.claim(task.getId(), "testUser");
}

// ²é¿´testUser ÏÖÔÚÊÇ·ñÄܹ»»ñÈ¡µ½¸ÃÈÎÎñ
tasks = taskService.createTaskQuery().taskAssignee("testUser").list();
for (Task task : tasks) {
System.out.println("Task for testUser: " + task.getName());
// Íê³ÉÈÎÎñ
taskService.complete(task.getId());
}
System.out.println("Number of tasks for testUser: "
+ taskService.createTaskQuery().taskAssignee("testUser").count());


// »ñÈ¡²¢ÈÏÁìµÚ¶þ¸öÈÎÎñ
tasks = taskService.createTaskQuery().taskDefinitionKey("secondTask").list();
for (Task task : tasks) {
System.out.println("Following task is : taskID -" +task.getId()+" taskName -"+ task.getName());
taskService.claim(task.getId(), "testUser");
}

//Íê³ÉµÚ¶þ¸öÈÎÎñ½áÊø½áÊøÁ÷³Ì
for (Task task : tasks) {
taskService.complete(task.getId());
}

// ºËʵÁ÷³ÌÊÇ·ñ½áÊø
HistoryService historyService = processEngine.getHistoryService();
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(procId).singleResult();
System.out.println("Process instance end time: " + historicProcessInstance.getEndTime());
}
}

Ò»´î½¨»·¾³

1.1 JDK 6+

1.2 Ant 1.8.1+

1.3 Eclipse 3.7+

1.4 Activiti -eclipse designer²å¼þ°²×°

1.4.1 ÏȰ²×°GEF²å¼þ

1.4.2 °²×°SVN²å¼þ

1.4.3°²×°Maven²å¼þ

1.4.4 ×îºó°²×°Activiti -eclipse designer

¶þ¿ªÊ¼activiti 5.12.1µÄµÚÒ»¸ödemo

2.1 ½¨Á¢activiti-demo¹¤³Ì£¬Ñ¡ÔñActiviti Project

2.2 ½«activiti-demo¹¤³ÌµÄÊý¾Ý¿âÕûºÏΪMySQL

2.3 Éè¼Æactiviti-demo¹¤³ÌµÄÁ÷³Ì

ÒÔÉÏÏêϸÃèÊö²ÎÕÕActiviti ¼òÒ׽̳ÌÒ» version5.10£¨http://blog.csdn.net/yangyi22/article/details/9225849£©

²âÊÔÀà´úÂë DemoProcessTest.java

package main.java;  

import java.io.FileInputStream;
import java.util.List;
import org.activiti.engine.HistoryService;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;

public class DemoProcessTest {
// diagramsʵ¼Ê·¾¶
private static String realPath =
"D:\\Java~coding~site\\J2EE-IDE\\Workspace\\workspace[indigo-jee]" +
"\\activiti-512demo\\src\\main\\resources\\diagrams";
public static void main(String[] args) throws Exception {
// ´´½¨ ActivitiÁ÷³ÌÒýÇæ
//·½Ê½Ò» ×Ô¶¯Ñ°ÕÒactiviti.cfg.xml
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

//·½Ê½¶þ Ö¸¶¨¼ÓÔØactiviti.cfg.xml
// ProcessEngine processEngine = ProcessEngineConfiguration
// .createProcessEngineConfigurationFromResource("activiti.cfg.xml")
// .buildProcessEngine();

// È¡µÃ Activiti ·þÎñ
RepositoryService repositoryService = processEngine.getRepositoryService();
RuntimeService runtimeService = processEngine.getRuntimeService();

// ²¿ÊðÁ÷³Ì¶¨Òå
repositoryService
.createDeployment()
.addInputStream("DemoProcess.bpmn",new FileInputStream(realPath + "\\DemoProcess.bpmn"))
.addInputStream("DemoProcess.png", new FileInputStream(realPath + "\\DemoProcess.png"))
.deploy();

// Æô¶¯Á÷³ÌʵÀý
ProcessInstance instance = processEngine
.getRuntimeService().startProcessInstanceByKey("DemoProcess");
String procId = instance.getId();
System.out.println("procId:"+ procId);

// »ñµÃµÚÒ»¸öÈÎÎñ
TaskService taskService = processEngine.getTaskService();
List<Task> tasks = taskService.createTaskQuery().taskDefinitionKey("firstTask").list();
for (Task task : tasks) {
System.out.println("Following task is: taskID -" +task.getId()+" taskName -"+ task.getName());
// ÈÏÁìÈÎÎñ
taskService.claim(task.getId(), "testUser");
}

// ²é¿´testUser ÏÖÔÚÊÇ·ñÄܹ»»ñÈ¡µ½¸ÃÈÎÎñ
tasks = taskService.createTaskQuery().taskAssignee("testUser").list();
for (Task task : tasks) {
System.out.println("Task for testUser: " + task.getName());
// Íê³ÉÈÎÎñ
taskService.complete(task.getId());
}
System.out.println("Number of tasks for testUser: "
+ taskService.createTaskQuery().taskAssignee("testUser").count());


// »ñÈ¡²¢ÈÏÁìµÚ¶þ¸öÈÎÎñ
tasks = taskService.createTaskQuery().taskDefinitionKey("secondTask").list();
for (Task task : tasks) {
System.out.println("Following task is : taskID -" +task.getId()+" taskName -"+ task.getName());
taskService.claim(task.getId(), "testUser");
}

//Íê³ÉµÚ¶þ¸öÈÎÎñ½áÊø½áÊøÁ÷³Ì
for (Task task : tasks) {
taskService.complete(task.getId());
}

// ºËʵÁ÷³ÌÊÇ·ñ½áÊø
HistoryService historyService = processEngine.getHistoryService();
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(procId).singleResult();
System.out.println("Process instance end time: " + historicProcessInstance.getEndTime());
}

}

ÒÀÀµjar°ü˵Ã÷

Activiti5.10ÒÔºóµÄ°æ±¾ÒѾ­È¥µôµÚÈý·½µÄjar°ü£¬´Ó¹ÙÍøÏÂÔØµÄActiviti5.12.1µÄÒÀÀµ°ü½ö½ö°üº¬activitiÏà¹ØµÄjar£¬Ä¿Â¼libsϵÄjar°üÈçÏ£º

ÔËÐвâÊÔ´úÂ룬»á·¢ÏÖÉÙÁ˺ܶàÒÀÀµ°ü£¬ÎҵĴ¦ÀíµÄ·½·¨ÊÇÖ±½Ó´Ó5.10°æ±¾µ¼ÈëȱÉÙµÄjar°ü£¬µ¼Èëºó²âÊÔ´úÂëͨ¹ý¡£

jar°ü£º

   
2508 ´Îä¯ÀÀ       29
Ïà¹ØÎÄÕÂ

¶àά·½·¨À´¿ª·¢ÓлúµÄÒµÎñÁ÷³Ì¼Ü¹¹
SCA Ó¦ÓóÌÐò¿ª·¢
BPM ºÍ SOA ÐÔÄÜ×î¼Ñʵ¼ù
ʵÏÖÆóÒµ·þÎñ×ÜÏßģʽ
Ïà¹ØÎĵµ

SCA½éÉܼ°Ó¦ÓÃʵÀý
»ùÓÚSOA¼Ü¹¹µÄESBƽ̨£ºInfomagic
SCA¼Ü¹¹
SOAµÄ»ù±¾¸ÅÄî
Ïà¹Ø¿Î³Ì

ÃæÏòÓ¦Óõļܹ¹Éè¼ÆÊµ¼ù
µ¥Ôª²âÊÔ+ÖØ¹¹+Éè¼ÆÄ£Ê½
Èí¼þ¼Ü¹¹Ê¦¡ª¸ß¼¶Êµ¼ù
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]

»ùÓÚSOAµÄ¹¤×÷Á÷£¨WF£©ÕûºÏ
SOA 100ÎÊ - ÎÊÓë´ð
SOAP Ó¦ÓÃģʽ:´¦ÀíÓëÐÔÄÜ
ESB¼Ü¹¹Ö®Æóҵʵʩ°¸Àý
»ùÓÚSOA¼Ü¹¹µÄÆóÒµ¼¯³Éϵͳ
»ùÓÚSOAµÄÌåϵ¼Ü¹¹Éè¼Æ


ÃæÏòÓ¦Óõļܹ¹Éè¼ÆÊµ¼ù
µ¥Ôª²âÊÔ+ÖØ¹¹+Éè¼ÆÄ£Ê½
Èí¼þ¼Ü¹¹Ê¦¡ª¸ß¼¶Êµ¼ù
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù
SOAÌåϵ½á¹¹Êµ¼ù


ijµÚÈý·½µç×ÓÖ§¸¶ÆóÒµ SOA¼Ü¹¹Éè¼Æ
ijµç×ÓÆóÒµ SOAÓ¦ÓÃ
ÖйúÒÆ¶¯ SOAÅàѵ
±±¾©´óѧ SOA¼Ü¹¹Éè¼ÆÊµ¼ù
ÓѰÏÕ SOA¼Ü¹¹Éè¼Æ
ÉϺ£ SOA¼Ü¹¹Êµ¼ù
ɽ¶«Òƶ¯Í¨ÐÅ SOAÌåϵ½á¹¹Êµ¼ù