本人最近在研究jbpm,在写同时递交给下一个流程的时候出现了一个重要的错误。公文流转创建如下:<?xml version="1.0" encoding="UTF-8"?><process-definition
  xmlns=""  name="test04">
   <start-state name="start">
      <transition name="提交给张三审批" to="张三审批" condition="#{days lt 5}"></transition>
      <transition name="提交给李四审批" to="李四审批" condition="#{days ge 5}"></transition>
   </start-state>
   <task-node name="张三审批">
      <task name="审批">
        <assignment actor-id="张三"/>
      </task>
      <transition name="结束流程" to="完成"></transition>
   </task-node>
   <task-node name="李四审批">
      <task name="审批">
        <assignment actor-id="李四"/>
      </task>
      <transition name="结束流程" to="完成"></transition>
   </task-node>
   <end-state name="完成"></end-state>
</process-definition>
数据库以及公文与流程都已经绑定,这些没问题,但是在提交的时候报了一个这样的错误:
org.jbpm.JbpmException: transition condition #{days lt 5} evaluated to 'false'
at org.jbpm.graph.def.Transition.take(Transition.java:125)
at org.jbpm.graph.def.Node.leave(Node.java:393)
at org.jbpm.graph.node.StartState.leave(StartState.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:147)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$7fe4cd8.leave(<generated>)
at org.jbpm.graph.exe.Token.signal(Token.java:194)
at org.jbpm.graph.exe.Token.signal(Token.java:157)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:147)
at org.jbpm.graph.exe.Token$$EnhancerByCGLIB$$b48cf36c.signal(<generated>)
at org.jbpm.graph.exe.ProcessInstance.signal(ProcessInstance.java:263)
at com.bjsxt.jbpm.Jbpm_04_SubmitDocument.testSubmitDocument(Jbpm_04_SubmitDocument.java:33)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
本人的TestSubmitDocument代码如下(测试单元):package com.bjsxt.jbpm;import junit.framework.TestCase;import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.graph.exe.ProcessInstance;public class Jbpm_04_SubmitDocument extends TestCase {
static JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();

//将公文提交到第一个环节
public void testSubmitDocument(){

//JbpmContext封装了hibernate session的功能,用来对JBPM相关的对象执行持久化操作
JbpmContext context = jbpmConfiguration.createJbpmContext();

try{

//已知公文信息
int documentId = (Integer)Persistence.getVariable("documentId");

Document doc = (Document)context.getSession().load(Document.class, documentId);

long processInstanceId = doc.getProcessInstanceId();

ProcessInstance instance = context.getProcessInstance(processInstanceId);

//调用signal()方法的时候,JBPM不会去计算在transition上面的条件
//表达式,所以,如果你在调用signal()方法的时候,不指定transitionName
//参数,此方法可能无法执行!
//instance.signal();
instance.signal("提交给张三审批");
}catch(Exception e){
e.printStackTrace();
context.setRollbackOnly();
}finally{
context.close();
}
}
}本人推断是不是流程条件写错了?
      <transition name="提交给张三审批" to="张三审批" condition="#{days lt 5}"></transition>
      <transition name="提交给李四审批" to="李四审批" condition="#{days ge 5}"></transition>
condition后面的条件错了?
望各位大侠指点~~