博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
groovy
阅读量:6253 次
发布时间:2019-06-22

本文共 2741 字,大约阅读时间需要 9 分钟。

1、加载和卸载(每次都新建一个GroovyClassLoader 实例,然后使用新建的classloader去加载)

try {            GroovyClassLoader groovyClassLoader = new GroovyClassLoader();            Class
clazz = groovyClassLoader.parseClass(orchestrationUnitDesc); GroovyObject unit = (GroovyObject) clazz.newInstance(); result.setSuccess(true); result.setResult(unit); return result; } catch (InstantiationException e) { result.setSuccess(false); result.setErrorMsg("groovy:InstantiationException:" + e.getMessage()); DataExchangeLogger.errorLog("", "", "groovy:InstantiationException", e); } catch (IllegalAccessException e) { result.setSuccess(false); result.setErrorMsg("groovy:IllegalAccessException:" + e.getMessage()); DataExchangeLogger.errorLog("", "", "groovy:IllegalAccessException", e); } catch (Exception e) { result.setSuccess(false); result.setErrorMsg("groovy:Exception:" + e.getMessage()); DataExchangeLogger.errorLog("", "", "groovy:Exception", e); }

2、执行

   上面得到一个GroovyObject对象,执行方法就是调用GroovyObject的invokeMethod方法

// > 获取编排单元        GroovyObject unit = (GroovyObject) ServiceOrchestrationConfigManager.getOrchestrationUnit(message.getMsgType());        if (unit == null) {            result.setErrorCode(OpenErrorCode.S07.name());            result.setErrorMsg("orchestrationScript is null.");            result.setSuccess(false);            return result;        }        // > 调用服务编排        try {            unit.invokeMethod("setDoc", CustomXmlUtil.parseText2Doc(message.getRequestString()));            result = (SendResult) unit.invokeMethod("execute", message);            if (result == null) {                result = new SendResult();                result.setErrorCode(OpenErrorCode.S07.name());                result.setErrorMsg("下发编排脚本执行,返回为空");                result.setSuccess(false);            }        } catch (DocumentException e) {            result.setErrorCode(OpenErrorCode.S07.name());            result.setErrorMsg("请求报文转docment对象异常" + e.getMessage());            result.setSuccess(false);            DataExchangeLogger.errorLog(message.getBizId(), message.getMsgType(),                    "call service orchestration parseText2Doc error.", e);            return result;        } catch (Exception e) {            result.setErrorCode(OpenErrorCode.S07.name());            result.setErrorMsg("下发编排脚本执行异常" + e.getMessage());            result.setSuccess(false);            DataExchangeLogger.errorLog(message.getBizId(), message.getMsgType(),                    "call service orchestration excute script error. ", e);        }

 

转载于:https://www.cnblogs.com/YDDMAX/p/5464440.html

你可能感兴趣的文章
使用阿里云的k8s部署访问环境
查看>>
大数据工程师微职位学习分享
查看>>
企业使用云服务器的优势
查看>>
dubbo Servlet Bridge Server时同时支持hessian和webservice
查看>>
lanmp一键安装包安装说明(包括lamp,lnmp,lnamp安装)
查看>>
Shell命令-文件及内容处理之head、tail
查看>>
aws上的vsftp服务的坎坷经历
查看>>
关于SVN 目录结构(2)
查看>>
Android碎碎念 -- 视频播放器
查看>>
关于51单片机“外部中断触发方式”的经验总结
查看>>
2.文件管理
查看>>
Oracle中TO_DATE TO_CHAR格式
查看>>
oracle的触发器增删改实例
查看>>
hive 自定义函数 udf
查看>>
哈哈校园[上海]招募Java/J2EE工程师
查看>>
Docker在CentOS 7 环境下的安装及基本操作入门
查看>>
【Spring Boot 系列 自定义启动器Starter】
查看>>
Centos 7.4版本升级内核3.10+ 到4+过程
查看>>
ssh 免密码登录的设置遇到问题
查看>>
amoeba稳定性问题
查看>>