Java6 WebService客户端封装 (可配置IP)

在开发WebService客户端应用的时候,面临的最大挑战是事先不知道服务端要部署在哪里,端口是什么,因此Hello World的例子并不适合生产环境,还需要进一步的做改进。
 
改进的总体思想是将静态的部分替换为动态的,也就是说,将服务的ip和端口,做成动态参数,然后根据服务端的部署灵活改变这些配置参数。
 
下面针对前面的例子对客户端做一个改进。
 
1、写WebService服务的配置参数文件
 
wscfg.properties
#Java6WS服务的配置 
Java6WS.wsip=192.168.14.117 
Java6WS.wsport=8888
 
2、写配置参数获取工具
 
SysParamsToolkit.java
package lavasoft.common; 

import java.io.IOException; 
import java.util.Properties; 

/** 
* 媒资系统配置文件参数获取工具 

* @author leizhimin 2009-11-16 15:21:22 
*/
 

public  final  class SysParamsToolkit { 
         private  static Properties prop; 

         private SysParamsToolkit() { 
        } 

         static { 
                reload(); 
        } 

         public  static  boolean reload() { 
                 boolean flag =  true
                prop =  new Properties(); 
                 try { 
                        prop.load(SysParamsToolkit. class.getResourceAsStream( "/wscfg.properties")); 
                        flag =  false
                }  catch (IOException e) { 
                        e.printStackTrace(); 
                } 
                 return flag; 
        } 

         public  static Properties getSysProperties() { 
                 return prop; 
        } 

         /** 
         * 获取指定的系统属性值 
         * 
         * @param key 指定的属性名称 
         * @return 指定的系统属性值 
         */
 
         public  static String getProperty(String key) { 
                 return prop.getProperty(key); 
        } 

         /** 
         * 获取指定的系统属性值 
         * 
         * @param key                指定的属性名称 
         * @param defaultVal 默认值 
         * @return 指定的系统属性值 
         */
 
         public  static String getProperty(String key, String defaultVal) { 
                 return prop.getProperty(key, defaultVal); 
        } 

         public  static  void main(String[] args) { 
                Properties prop = getSysProperties(); 
        } 
}
 
3、修改Java6工具生成的代码,改静态的IP和端口为动态的参数。
 
这一步是最关键的一步,前面的都是准备工作,这一步才是实质性的工作,首先你要找到所生成客户端代码的服务接口实现类,在此是Java6WSService类。
@WebServiceClient(name =  "Java6WSService", targetNamespace =  "http://server.lavasoft/", wsdlLocation = "http://192.168.14.117:8080/java6ws/Java6WS?wsdl") 
public class Java6WSService 
                extends Service { 
        private final static URL JAVA6WSSERVICE_WSDL_LOCATION; 
        private final static Logger logger = Logger.getLogger(lavasoft.wsclient.Java6WSService.class.getName()); 

        static { 
                String wsip = SysParamsToolkit.getProperty("wsip""192.168.14.117"); 
                String wsport = SysParamsToolkit.getProperty("wsport""8888"); 
                URL url = null
                try { 
                        URL baseUrl; 
                        baseUrl = lavasoft.wsclient.Java6WSService.class.getResource("."); 
                        url = new URL(baseUrl, "http://" + wsip + ":" + wsport + "/java6ws/Java6WS?wsdl"); 
                } catch (MalformedURLException e) { 
                        logger.warning("Failed to create URL for the wsdl Location: '"+"http://" + wsip + ":" + wsport + "/java6ws/Java6WS?wsdl"+"', retrying as a local file"); 
                        logger.warning(e.getMessage()); 
                } 
                JAVA6WSSERVICE_WSDL_LOCATION = url; 
        } 

......
 
到此,大功告成了,你的客户端代码具有了可配置功能了。可以不再担心服务端如何部署了。
 
运行一把看看:
 
由于客户端生成的代码超多,不能一一贴出,也没必要,详细源码请查看附件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值