欢迎使用普元产品知识库,本知识库包含普元应用开发平台EOSPlatform,流程平台BPS,企业服务总线ESB,微服务平台Microservice,运维管理平台Devops,数据集成平台DI
欢迎使用普元文档库
帅小艳
工作流报"无法编译工作流复杂表达式"异常,具体来说:
流程图上使用复杂表达式以前是可以的,而且生产上已经有很多流程使用复杂表达式运行正常。最近因为做二次开发,修改部分流程的过程中发现只要是有流程有复杂表达式的地方都抛异常,不知什么缘故。异常堆栈信息如下: ...... ErrCode: 21000000 Message: NULL at com.primeton.workflow.model.exp.ScriptShellEmbedded.service(ScriptShellEmbedded.java:66) at com.primeton.workflow.model.definition.TransitionCondition.getComplexBooleanExp(TransitionCondition.java:176) at com.primeton.workflow.event.handler.process.ProcessSchedulerUtil.isConditionOK(ProcessSchedulerUtil.java:177) at com.primeton.workflow.event.handler.process.ProcessSchedulerUtil.getXORModeNextTrans(ProcessSchedulerUtil.java:497) at com.primeton.workflow.event.handler.process.ProcessSchedulerUtil.getPossilbeListNormal(ProcessSchedulerUtil.java:624) ...... Caused by: ErrCode: 21093501 Message: 无法编译工作流复杂表达式: incorrect classpath: D:\primeton6.1_bps6.0\eosserver\base\lib\j2ee\j2ee.jar;......;D:\primeton6.1_bps6.0\eosserver\working\box-oa\temp; --------- 1. ERROR in \D:\primeton6.1_bps6.0\eosserver\working\box-oa\temp\\com\eos\oa\box_systemdevelop\redevelopApply
RD_KFRY_011_RD_XMJL_012.java (at line 2) public final class RD_KFRY_011_RD_XMJL_012 implements com.primeton.workflow.model.exp.BooleanExpression{ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ com.primeton.workflow.model.exp cannot be resolved to a type --------- 1 problem (1 error) at com.primeton.workflow.commons.scriptshell.JDTCompiler.generateClass(JDTCompiler.java:152) ......
BPS6
经双方合力排查,最终找到原因如下:客户将一个第三方JAR文件tm-extractors-1[ProductServiceKM:1].0.jar 放到了WEB-INF/lib中,而工作流连线中的复杂表达式是java片断,运行时通过JDT编译成类文件,在编译的时候需要将WEB-INF/lib中类加载进来,不知何种原因把此第三方jar加进来之后,导致无法编译,初步判断是此第三方的jar包与原有的jar包存在冲突。
解决方案是尝试将此第三方的JAR放到其他lib目录,这样不会影响 BPS流程的编译。
注意事项(需要指出的注意点):