zhangzjhang0617 2009-11-27 16:32
浏览 276
已采纳

java+JBPM 帮我看看这段测试程序

public void startProcessAndCompleteFistTask() {
    JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext();
    Session session = jbpmContext.getSession();
    User creator = (User) session.get(User.class, 1);
    // 1, 部署流程定义
    ProcessDefinition pd = ProcessDefinition.parseXmlResource("报销/processdefinition.xml");
    jbpmContext.deployProcessDefinition(pd);
    // 2, 启动流程
    ProcessInstance pi = pd.createProcessInstance();
    System.out.println("3333333333"+pi.getId());

    // 创建表单
    LeaveBizForm bizForm = new LeaveBizForm();
    bizForm.setCreator(creator);
    bizForm.setCreationTime(new Date());
    bizForm.setProcessName("报销");
    bizForm.setProcessInstanceId(pi.getId());
    bizForm.setBizFormStatus(BizFormStatus.APPROVEING);
    bizForm.setType("交通费");
    bizForm.setMoney(100);
    // 设置变量
    pi.getContextInstance().setVariable("leaveBizForm", bizForm);
    pi.getContextInstance().setVariable("proposerId", creator.getId());
    pi.getContextInstance().setVariable("proposer", creator.getName());
    ("proposer"));
    pi.signal();

    // 完成第一个任务(提交申请)
    TaskInstance ti = (TaskInstance) pi.getTaskMgmtInstance().getTaskInstances().iterator().next();
    ti.start();
    System.out.println("***"+ti.getName());//TaskInstance 显示为空
    ti.end();
    System.out.println("GGGGGGGGGGGGGGGGGGGGGGGGGGG");//这句代码执行了
    jbpmContext.close();    
}

结果报错:16:27:21,359 [main] ERROR DbPersistenceService : hibernate commit failed
org.hibernate.HibernateException: instance not of expected entity type: org.jbpm.context.exe.variableinstance.UnpersistableInstance is not a: org.jbpm.context.exe.VariableInstance
[b]问题补充:[/b]
<?xml version="1.0" encoding="GBK"?>

<start-state name="开始">
    <transition to="提交申请"></transition>
</start-state>

















部门经理




<task-node name="经理审批">
    <task name="经理审批">
        <assignment class="com.hr.oa.process.handler.AssignmentHandlerImpl">
            <roleName>
                经理
            </roleName>
        </assignment>
    </task>
    <transition to="结束"></transition>
</task-node>

<decision name="decision2">
    <handler class="com.hr.oa.process.handler.Decision2HandlerImpl"></handler>
    <transition to="经理审批" name="报销金额大于1000元"></transition>
    <transition to="结束" name="报销金额小于等于1000元"></transition>
</decision>


<end-state name="结束"></end-state>
    <event type="node-enter">
        <action class="com.hr.oa.process.handler.SetBizFormStatusActionHandler"></action>
    </event>

这个是我写的工作流文件

  • 写回答

1条回答 默认 最新

  • the big fundmental 2009-11-27 18:27
    关注

    呵呵,看来你还真是心急如焚啦,你的两个问题都被我看到了。 :D jbpm3没用过,但是你自己可以调试一下,异常都出来了 instance not of expected entity type: org.jbpm.context.exe.variableinstance.UnpersistableInstance is not a: org.jbpm.context.exe.VariableInstance 按字面理解就是变量类型的问题。看看官方实例中变量是怎么加进去的,我以前用jbpm4时也遇到这么类似一个问题,但是一下子就弄好了, 都忘记是怎么解决的了,你仔细对比官方例子和你的代码就行了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 鼠标右键,撤销删除 复制 移动,要怎样删除
  • ¥15 使用MATLAB进行余弦相似度计算加速
  • ¥15 服务器安装php5.6版本
  • ¥15 我想用51单片机和数码管做一个从0开始的计数表 我写了一串代码 但是放到单片机里面数码管只闪烁一下然后熄灭
  • ¥20 系统工程中,状态空间模型中状态方程的应用。请猛男来完整讲一下下面所有问题
  • ¥15 我想在WPF的Model Code中获取ViewModel Code中的一个参数
  • ¥15 arcgis处理土地利用道路 建筑 林地分类
  • ¥20 使用visual studio 工具用C++语音,调用openslsx库读取excel文件的sheet问题
  • ¥100 寻会做云闪付tn转h5支付链接的技术
  • ¥15 DockerSwarm跨节点无法访问问题