private JSONObject getDBPoolsJson(Element dbPoolsElement) throws Exception {

        JSONObject jsonReturn = new JSONObject();

        List<Element> dbElementList = dbPoolsElement.getChildren("DB");
        if (dbElementList.isEmpty()) {
            throw new NullParamException("DBPools节点下必须包含“DB”子节点，请重新检查。");
        }

        for (Element dbElement : dbElementList) {
            JSONObject json = new JSONObject();

            String alias = dbElement.getAttributeValue("alias");
            String ip = dbElement.getAttributeValue("ip");
            String port = dbElement.getAttributeValue("port");
            String sid = dbElement.getAttributeValue("sid");
            String username = dbElement.getAttributeValue("username");
            String password = dbElement.getAttributeValue("password");
            String type = dbElement.getAttributeValue("type");
            String racConnStr = dbElement.getTextTrim();

            if (StringUtils.isBlank(alias)
                    || StringUtils.isBlank(ip)
                    || StringUtils.isBlank(port)
                    || StringUtils.isBlank(sid)
                    || StringUtils.isBlank(username)
                    || StringUtils.isBlank(password)
                    || StringUtils.isBlank(type)) {
                throw new NullParamException("DB节点下必须包含alias、ip、port、sid、username、password、type属性。");
            } else {
                json.put("ip", ip);
                json.put("port", port);
                json.put("sid", sid);
                json.put("username", username);
                json.put("password", password);
                json.put("type", type);
                json.put("racConnStr", racConnStr);
            }

            jsonReturn.put(alias, json);
        }

        return jsonReturn;
    }