在源代码中定义了list并写入流程上下文中,pi.getContextInstance().setVariable("list", ls);
在另一个方法中得到流程上下文中的相应变量list,但在这里出现了如下所示的异常,应该是类型转换出现了异常,但不知道具体的思路及出错的原因,遇到此类问题是否有什么方法帮解决List ls = (List)ti.getContextInstance().getVariable("list");
Exception in thread "main" java.lang.ClassCastException: org.jbpm.bytes.ByteArray$$EnhancerByCGLIB$$64b7f401
at test.TestOrderCountersign.endTask(TestOrderCountersign.java:79)
at test.TestOrderCountersign.main(TestOrderCountersign.java:21)
------解决方法--------------------------------------------------------
参见JBPM文档10.1
The variable names are java.lang.String. By default, jBPM supports the following value types:
* java.lang.String
* java.lang.Boolean
* java.lang.Character
* java.lang.Float
* java.lang.Double
* java.lang.Long
* java.lang.Byte
* java.lang.Short
* java.lang.Integer
* java.util.Date
* byte[]
* java.io.Serializable
* classes that are persistable with hibernate
list类型的变量无法直接存储到ContextInstance中,这里的错误可能是因为JBPM将list变量转换成了byte[]来存储,你在取出来的时候,要将byte[]类型的数据强转成list,所以报错。请采用JBPM支持的格式存储数据。