zoukankan      html  css  js  c++  java
  • groovy

    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);
            }
  • 相关阅读:
    面向对象
    原型链
    HTTP协议
    java连接数据库(jdbc)调用配置文件
    MySQL-学习笔记
    JAVA-集合框架
    JAVA-多线程
    java中的try-catch-finally异常处理(学习笔记)
    ADO.NET增、删、改、查
    C#资源管理器
  • 原文地址:https://www.cnblogs.com/YDDMAX/p/5464440.html
Copyright © 2011-2022 走看看