首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Exception >

Exception in thread "main" java.lang.ClassCastException: org.jbpm.byte

2014-01-26 
在源代码中定义了list并写入流程上下文中,pi.getContextInstance().setVariable(list, ls) 在另一个方法

在源代码中定义了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支持的格式存储数据。

        

热点排行