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 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退
  • ¥20 win系统的PYQT程序生成的数据如何放入云服务器阿里云window版?
  • ¥50 invest生境质量模块