From 6cf78ccb419ed643222c719af01a3d8aad04ed38 Mon Sep 17 00:00:00 2001 From: janeluo Date: Wed, 20 Jan 2021 21:59:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8E=A5=E5=8F=A3=E9=87=8C?= =?UTF-8?q?=E4=BD=BF=E7=94=A8magic.execute=E8=B0=83=E7=94=A8=E5=85=B6?= =?UTF-8?q?=E5=AE=83=E6=8E=A5=E5=8F=A3=E5=AF=BC=E8=87=B4=E4=B8=8A=E4=B8=8B?= =?UTF-8?q?=E6=96=87=E4=B8=A2=E5=A4=B1=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../provider/impl/DefaultMagicAPIService.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultMagicAPIService.java b/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultMagicAPIService.java index f15e8163..d3fa6afa 100644 --- a/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultMagicAPIService.java +++ b/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultMagicAPIService.java @@ -49,11 +49,22 @@ public class DefaultMagicAPIService implements MagicAPIService { } private Object execute(ApiInfo info, Map context) { + + // 获取原上下文 + final MagicScriptContext magicScriptContext = MagicScriptContext.get(); + MagicScriptContext scriptContext = new MagicScriptContext(); scriptContext.putMapIntoContext(context); SimpleScriptContext simpleScriptContext = new SimpleScriptContext(); simpleScriptContext.setAttribute(MagicScript.CONTEXT_ROOT, scriptContext, ScriptContext.ENGINE_SCOPE); - return ScriptManager.compile("MagicScript", info.getScript()).eval(simpleScriptContext); + final Object evalVal; + try { + evalVal = ScriptManager.compile("MagicScript", info.getScript()).eval(simpleScriptContext); + } finally { + // 恢复原接口上下文,修复当前调完其它接口后原接口上下文丢失的问题 + MagicScriptContext.set(magicScriptContext); + } + return evalVal; } @Override -- Gitee