欢迎使用普元产品知识库,本知识库包含普元应用开发平台EOSPlatform,流程平台BPS,企业服务总线ESB,微服务平台Microservice,运维管理平台Devops,数据集成平台DI

页面树结构

欢迎使用普元文档库

Skip to end of metadata
Go to start of metadata
本文作者(如果添加人就是作者本人,此行请删除):

帅小艳

问题场景描述(即问题出现的具体现象):

工作流报"无法编译工作流复杂表达式"异常,具体来说:

流程图上使用复杂表达式以前是可以的,而且生产上已经有很多流程使用复杂表达式运行正常。最近因为做二次开发,修改部分流程的过程中发现只要是有流程有复杂表达式的地方都抛异常,不知什么缘故。异常堆栈信息如下: ...... 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) ...... 

适用环境(例如此经验仅限于某些版本,或者仅限于特定的操作系统、数据库、J2EE应用服务器环境):

BPS6

解决经验(包括原因分析、解决方法或过程等):

经双方合力排查,最终找到原因如下:客户将一个第三方JAR文件tm-extractors-1[ProductServiceKM:1].0.jar 放到了WEB-INF/lib中,而工作流连线中的复杂表达式是java片断,运行时通过JDT编译成类文件,在编译的时候需要将WEB-INF/lib中类加载进来,不知何种原因把此第三方jar加进来之后,导致无法编译,初步判断是此第三方的jar包与原有的jar包存在冲突。

解决方案是尝试将此第三方的JAR放到其他lib目录,这样不会影响 BPS流程的编译。

注意事项(需要指出的注意点):