zoukankan      html  css  js  c++  java
  • Java-WebServiceUtil工具类

    /**
     * Program  : WebServiceUtil.java
     * Author   : leigq
     * Create   : 2010-11-12 上午09:02:05
     *
     * Copyright 2010 by Embedded Internet Solutions Inc.,
     * All rights reserved.
     *
     * This software is the confidential and proprietary information
     * of Embedded Internet Solutions Inc.("Confidential Information").  
     * You shall not disclose such Confidential Information and shall 
     * use it only in accordance with the terms of the license agreement 
     * you entered into with Embedded Internet Solutions Inc.
     *
     */
    
    package cn.ipanel.apps.portalBackOffice.util;
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Enumeration;
    import java.util.List;
    import java.util.Properties;
    import java.util.Set;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    import org.apache.log4j.Logger;
    
    import cn.ipanel.apps.portalBackOffice.define.Defines;
    import cn.ipanel.apps.portalBackOffice.domain.WSAddress;
    
    /**
     * webService 工具类
     */
    public class WebServiceUtil {
    
        private Properties properties = new Properties();
    
        private static Logger logger = Logger.getLogger(WebServiceUtil.class);
    
        public WebServiceUtil() {
            properties = PropertyManager.getConfig();
        }
    
        /**
         * 获取WebService配置信息,返回的数据格式为
         * @return List<WSAddress>
         */
        public List<WSAddress> getWebServers() {
            List<WSAddress> result = new ArrayList<WSAddress>();
    
            Enumeration<?> enu = properties.propertyNames();
            Pattern pattern = Pattern.compile("^(wsAddress)X?");
            CONTINUE_POINT: while (enu.hasMoreElements()) {
                try {
                    String key = (String) enu.nextElement();
                    Matcher matcher = pattern.matcher(key);
                    if (!matcher.find())
                        continue;
    
                    String propertityValue = (String) properties.get(key);
                    // 如果不是以';'分隔的,则不处理
                    if (propertityValue.indexOf(";") == -1)
                        continue;
    
                    String[] values = propertityValue.split(";");
                    // 如果不是三段规则,则不处理
                    if (values.length != 4)
                        continue;
    
                    for (int i = 0; i < values.length; i++)
                        if (values[i] == null || values[i].trim().length() == 0)
                            continue CONTINUE_POINT;
    
                    result.add(new WSAddress(key, values[0], values[1], values[2],values[3]));
                } catch (Exception e) {
                    logger.warn(e);
                }
            }
            return result;
        }
    
        /**
         * 检测此key值是否已经被使用,若重复使用相同key值,会以新的配置覆盖旧的配置
         * @param key
         * @return
         */
        public boolean checkKeyIsExist(String key) {
            Set<Object> keys = properties.keySet();
            if (keys.contains(key))
                return true;
            return false;
        }
        /**
         * 保存WebService配置到property文件
         * @param wsAddress
         * @return
         */
        public boolean storWSAddress(WSAddress wsAddress){
            if (wsAddress == null || checkWSAddressValue(wsAddress))
                throw new RuntimeException("参数不正确,请检查.");
    
            String wsProperty = wsAddress.getAddress() + ";" + wsAddress.getAccessFolder() + ";" + wsAddress.getPublishFolder() + ";" + wsAddress.getVisitURL();
            String wsKey = wsAddress.getWsName();
    
            properties.setProperty(wsKey, wsProperty);
            try {
                properties.store(new FileOutputStream(new File(Defines.CONFIG_FILE_PATH)), null);
            } catch (IOException e) {
                throw new RuntimeException("属性配置存储失败,请检查.");
            }
            return true;
        }
        /**
         *  移除webService配置
         * @param key
         * @return
         * @throws FileNotFoundException
         * @throws IOException
         */
        public boolean removeWSAddress(String key){
            try {
                properties.remove(key);
                properties.store(new FileOutputStream(new File(Defines.CONFIG_FILE_PATH)), "");
                return true;
            } catch (FileNotFoundException e) {
                throw new RuntimeException("配置文件未找到,请检查.");
            } catch (IOException e) {
                throw new RuntimeException("文件存储失败,请检查.");
            }
    
    
        }
    
    
        /**
         * 检测参数是否正确,任何错误或空值都抛异常
         * @param wsAddress
         */
        private boolean checkWSAddressValue(WSAddress wsAddress) {
            String wsName = wsAddress.getWsName();
            if (wsName == null || wsName.trim().length() == 0)
                throw new RuntimeException("参数: wsName为空,请检查.");
    
            String publishFolder = wsAddress.getPublishFolder();
            if (publishFolder == null || publishFolder.trim().length() == 0 || publishFolder.indexOf(";") != -1)
                throw new RuntimeException("参数: publishFolder为空或包含非法字符:';',请检查.");
    
            String address = wsAddress.getAddress();
            if (address == null || address.trim().length() == 0 || address.indexOf(";") != -1)
                throw new RuntimeException("参数: wsAddress为空或包含非法字符:';',请检查.");
    
            String accessFolder = wsAddress.getAccessFolder();
            if (accessFolder == null || accessFolder.trim().length() == 0 || accessFolder.indexOf(";") != -1)
                throw new RuntimeException("参数: accessFolder为空或包含非法字符:';',请检查.");
            String visitURL = wsAddress.getVisitURL();
            if (visitURL == null || visitURL.trim().length() == 0 || visitURL.indexOf(";") != -1)
                throw new RuntimeException("参数: visitURL为空或包含非法字符:';',请检查.");
            return false;
        }
    }
    
    
  • 相关阅读:
    CF225E Unsolvable
    CF1100E Andrew and Taxi
    oracle数据库导入导出方法
    ORACLE无法删除当前连接用户
     为什么上传文件的表单里要加个属性enctype----摘录
    ecplise 使用快捷键
    spring工作机制及为什么要用?
    阐述struts2的执行流程。
    Hibernate工作原理及为什么要用?
    Mybatis 如何自动生成bean dao xml 配置文件 generatorconfig.xml (main()方法自动生成更快捷)
  • 原文地址:https://www.cnblogs.com/bilaisheng/p/10210963.html
Copyright © 2011-2022 走看看