import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
import org.junit.Test;
public class HelloWorld {
ProcessEngine pe = ProcessEngines.getDefaultProcessEngine();
/**流程部署 */
@Test
public void deploymentProcessDefinition(){
Deployment deployment = pe.getRepositoryService() //流程定义和部署相关的service
.createDeployment() //创建一个部署对象
.addClasspathResource("diagrams/helloworld.bpmn")
.addClasspathResource("diagrams/helloworld.png")
.name("请假流程")
.deploy();
System.out.println("部署流程ID: "+deployment.getId());
System.out.println("类别: "+deployment.getCategory());
System.out.println("名称: "+deployment.getName());
System.out.println("房客: "+deployment.getTenantId());
System.out.println("部署流程entity: "+deployment.getClass());
System.out.println("部署流程时间: "+deployment.getDeploymentTime());
}
/**启动流程实例 */
@Test
public void startProcessInstance(){ //启动工作流
String processDefinitionKey = "helloworld";
RuntimeService runtimeService = pe.getRuntimeService();
ProcessInstance processInstance = runtimeService //与正在执行的流程和执行相关对象的service
.startProcessInstanceByKey(processDefinitionKey);//根据流程定义的key启动流程实例,key对象bpmn文件中id属性的值
System.out.println("流程实例ID: "+processInstance.getId());
System.out.println("流程定义ID: "+processInstance.getProcessInstanceId());
}
}
上面是相关代码,流程部署方法是可以运行的,启动流程实例到了 runtimeService .startProcessInstanceByKey(processDefinitionKey)就报错了,错误信息如下:
org.activiti.engine.ActivitiException: Exception while invoking TaskListener: couldn't instantiate class org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener
at org.activiti.engine.impl.persistence.entity.TaskEntity.fireEvent(TaskEntity.java:742)
at org.activiti.engine.impl.bpmn.behavior.UserTaskActivityBehavior.execute(UserTaskActivityBehavior.java:213)
at org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityExecute.execute(AtomicOperationActivityExecute.java:60)
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:97)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:633)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:628)
at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionNotifyListenerStart.eventNotificationsCompleted(AtomicOperationTransitionNotifyListenerStart.java:52)
at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:56)
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:97)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:633)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:628)
at org.activiti.engine.impl.pvm.runtime.AbstractEventAtomicOperation.execute(AbstractEventAtomicOperation.java:49)
at org.activiti.engine.impl.interceptor.CommandContext.performOperation(CommandContext.java:97)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperationSync(ExecutionEntity.java:633)
at org.activiti.engine.impl.persistence.entity.ExecutionEntity.performOperation(ExecutionEntity.java:628)
at org.activiti.engine.impl.pvm.runtime.AtomicOperationTransitionCreateScope.execute(AtomicOperationTransitionCreateScope.java:49)
Caused by: org.activiti.engine.ActivitiException: couldn't instantiate class org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener
at org.activiti.engine.impl.util.ReflectUtil.instantiate(ReflectUtil.java:137)
at org.activiti.engine.impl.bpmn.helper.ClassDelegate.defaultInstantiateDelegate(ClassDelegate.java:242)
at org.activiti.engine.impl.bpmn.helper.ClassDelegate.instantiateDelegate(ClassDelegate.java:232)
at org.activiti.engine.impl.bpmn.helper.ClassDelegate.getTaskListenerInstance(ClassDelegate.java:128)
at org.activiti.engine.impl.bpmn.helper.ClassDelegate.notify(ClassDelegate.java:116)
at org.activiti.engine.impl.delegate.TaskListenerInvocation.invoke(TaskListenerInvocation.java:34)
at org.activiti.engine.impl.delegate.DelegateInvocation.proceed(DelegateInvocation.java:37)
at org.activiti.engine.impl.delegate.DefaultDelegateInterceptor.handleInvocation(DefaultDelegateInterceptor.java:25)
at org.activiti.engine.impl.persistence.entity.TaskEntity.fireEvent(TaskEntity.java:738)
... 88 more
Caused by: org.activiti.engine.ActivitiClassLoadingException: Class not found: org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener
at org.activiti.engine.impl.util.ReflectUtil.loadClass(ReflectUtil.java:87)
at org.activiti.engine.impl.util.ReflectUtil.instantiate(ReflectUtil.java:134)
... 96 more
Caused by: java.lang.ClassNotFoundException: org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:270)
at org.activiti.engine.impl.util.ReflectUtil.loadClass(ReflectUtil.java:291)
at org.activiti.engine.impl.util.ReflectUtil.loadClass(ReflectUtil.java:68)
... 97 more
跪求大神 帮忙