问题描述:
低开流程引擎事件里调用同一个EOS服务,两个不同的触发时机,“活动启动后”能调成功,“工作项超时”后却报401错误,异常如下:
Caused by: com.primeton.workflow.api.WFServiceException: ErrCode: 21070016
Message: 执行应用调用发生异常:eosService
at com.primeton.workflow.engine.scheduler.application.impl.ToolAgentManager.executeApplication(ToolAgentManager.java:201) ~[bps-server-engine-scheduler-8.3.0.jar!/:na]
at com.primeton.workflow.engine.scheduler.application.impl.log.ApplicationLogAction.execute(ApplicationLogAction.java:69) ~[bps-server-engine-scheduler-8.3.0.jar!/:na]
at com.primeton.workflow.engine.scheduler.enginelog.EngineLogExecutor.executeAction(EngineLogExecutor.java:162) ~[bps-server-engine-log-8.3.0.jar!/:na]
at com.primeton.workflow.engine.scheduler.application.impl.ToolAgentManager.executeTriggerEvents(ToolAgentManager.java:169) ~[bps-server-engine-scheduler-8.3.0.jar!/:na]
... 24 common frames omitted
Caused by: org.springframework.web.client.HttpClientErrorException$Unauthorized: 401 : "{"currentTime":"2024-12-12T17:05:48.026+0800","currentUser":null,"reasonPhrase":"Unauthorized","errorLocalizedMessage":"会话无效或未登录","errorMessage":null,"errorStackTraces":null,"errorCode":"100304","hostPort":"IP:28084","errorLevel":0}"
at org.springframework.web.client.HttpClientErrorException.create(HttpClientErrorException.java:105) ~[spring-web-5.3.27.jar!/:5.3.27]
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:168) ~[spring-web-5.3.27.jar!/:5.3.27]
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:122) ~[spring-web-5.3.27.jar!/:5.3.27]
at com.primeton.eos.springboot.exception.EOS8RestTemplateErrorHandler.handleError(EOS8RestTemplateErrorHandler.java:26) ~[eos-server-springboot-8.3.0.jar!/:na]
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:825) ~[spring-web-5.3.27.jar!/:5.3.27]
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:783) ~[spring-web-5.3.27.jar!/:5.3.27]
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:738) ~[spring-web-5.3.27.jar!/:5.3.27]
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:618) ~[spring-web-5.3.27.jar!/:5.3.27]
at com.primeton.eos.eosservice.invoke.EOSServiceInvoker.invoke(EOSServiceInvoker.java:124) ~[eos-server-eosservice-8.3.0.jar!/:na]
at sun.reflect.GeneratedMethodAccessor965.invoke(Unknown Source) ~[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_251]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_251]
at com.primeton.ext.system.method.LocalMethodCaller.call(LocalMethodCaller.java:187) ~[eos-ptp-common-method-8.3.0.jar!/:na]
at com.eos.system.method.MethodTemplate.callMethod(MethodTemplate.java:101) ~[eos-ptp-common-method-8.3.0.jar!/:na]
at com.eos.system.method.MethodTemplate.callMethod(MethodTemplate.java:152) ~[eos-ptp-common-method-8.3.0.jar!/:na]
at com.primeton.ext.common.transaction.TransactionalMethodTemplate.callMethodJoinTransaction(TransactionalMethodTemplate.java:90) ~[eos-ptp-jdbc-transaction-8.3.0.jar!/:na]
at com.primeton.workflow.service.application.invoke.impl.SynchronizeRunner.execute(SynchronizeRunner.java:340) ~[bps-server-service-application-8.3.0.jar!/:na]
at com.primeton.workflow.service.application.invoke.impl.SynchronizeRunner.run(SynchronizeRunner.java:260) ~[bps-server-service-application-8.3.0.jar!/:na]
at com.primeton.workflow.service.application.invoke.impl.XRestServiceWFInvoker.invoke(XRestServiceWFInvoker.java:140) ~[bps-server-service-application-8.3.0.jar!/:na]
at com.primeton.workflow.service.application.invoke.impl.XRestServiceWFInvoker.invoke(XRestServiceWFInvoker.java:44) ~[bps-server-service-application-8.3.0.jar!/:na]
at com.primeton.workflow.service.application.impl.ApplicationCaller$1.run(ApplicationCaller.java:253) ~[bps-server-service-application-8.3.0.jar!/:na]
at com.primeton.ext.common.muo.MUOTemplate.execute(MUOTemplate.java:58) [eos-ptp-datacontext-muo-8.3.0.jar!/:na]
at com.primeton.workflow.service.application.impl.ApplicationCaller.doInvoke(ApplicationCaller.java:251) ~[bps-server-service-application-8.3.0.jar!/:na]
at com.primeton.workflow.service.application.impl.ApplicationCaller.handleInvoke(ApplicationCaller.java:228) ~[bps-server-service-application-8.3.0.jar!/:na]
at com.primeton.workflow.engine.scheduler.application.impl.ToolAgentManager.executeApplication(ToolAgentManager.java:199) ~[bps-server-engine-scheduler-8.3.0.jar!/:na]
... 27 common frames omitted
解决方案:
传authorization或者把逻辑流加到白名单里,因为工作项超时后是定时任务做的,和流程任务不在一个进程里,拿不到token,所以报401
白名单加到server\afcenter\config\AFCENTER\config\user-config.xml Login-Filter Exclude里
EOS服务调用401错误分析

被折叠的 条评论
为什么被折叠?



