@SuppressWarnings("unchecked")
    public ESBServiceManager(Element rootElement) throws ESBBaseCheckedException {
        // 服务配置参数
        Element element = rootElement.element("service");

        if (element == null) {
            throw new ESBBaseCheckedException("SM-00001:ESB.xml配置文件中没有service相关配置项，请检查配置文件");
        }

        // 服务代理器生成编译配置
        if (element != null && "startup".equals(element.attributeValue("generate-type"))) {
            log.info("服务代理器生成编译模式:启动时");
            this.startupGenerateServiceProxyClass = true;
        } else {
            log.info("服务代理器生成编译模式:首次调用时");
            this.startupGenerateServiceProxyClass = false;
        }

        // 服务调用参数序列化检查
        ESBServerContext.setCheckSerializable(Boolean.parseBoolean(element.attributeValue("checkSerializable")));
        if (ESBServerContext.isCheckSerializable()) {
            log.info("启动因远服务程路由不存在而转为本地调用的服务参数及返回值的序列化检查");
        }

        // 服务调用过程中生成异常对象但未抛出的检查
        ESBServerContext.setCheckNotThrowException(Boolean.parseBoolean(element.attributeValue("checkNotThrowException")));
        if (ESBServerContext.isCheckNotThrowException()) {
            log.info("启动服务调用过程中生成异常对象但未抛出的检查");
        }

        // 服务最大调用深度检查配置
        String maxServiceCallLevel = element.attributeValue("maxServiceCallLevel");
        if (maxServiceCallLevel != null && !"".equals(maxServiceCallLevel)) {
            this.maxServiceCallLevel = Integer.parseInt(maxServiceCallLevel);
        }

        // 服务器最大调用深度检查配置
        String maxServerCallLevel = element.attributeValue("maxServerCallLevel");
        if (maxServerCallLevel != null && !"".equals(maxServerCallLevel)) {
            this.maxServerCallLevel = Integer.parseInt(maxServerCallLevel);
        }
        // 获取服务拦截器的配置信息
        serviceFilterConfig = element.elements("filter");
    }