使用配置文件动态获取WebService地址

9 篇文章 0 订阅
9 篇文章 2 订阅

请看MyService.java中片段代码(由wsimport工具自动生成)

复制代码
 1 static {
2 URL url = null;
3 WebServiceException e = null;
4 try {
5 url = new URL("http://localhost:8080/Demo/services/MyService?wsdl"); //硬编码
6 } catch (MalformedURLException ex) {
7 e = new WebServiceException(ex);
8 }
9 MYSERVICE_WSDL_LOCATION = url;
10 MYSERVICE_EXCEPTION = e;
11 }
复制代码

如果程序中"http://localhost:8080/Demo/services/MyService?wsdl"标红部分发生改变,是否需要我们使用wsimport工具重新生成客户端呢?答案当然是不允许,也是不行的,你懂的。

解决方法:地址通过读取配置文件来获得,地址如果发生变动,只需要修改配置文件,程序无需修改!

新建文件PropertiesConfig.java

复制代码
 1 import java.util.Properties;
2 import java.io.FileInputStream;
3 public class PropertiesConfig {
4
5 public static String site;
6
7 public static String getSite(){
8 Properties p = new Properties();
9 try{
10 p.load(new FileInputStream("src/general.properties"));
11 }catch(Exception e){
12 e.printStackTrace();
13 }
14 site = p.getProperty("webservice_site");
15 return site;
16 }
17 }
复制代码

新建配置文件general.properties

1 webservice_site = http://localhost:8080/Demo/services/MyService

修改MyService.java

复制代码
 1 static {
2 URL url = null;
3 String str = PropertiesConfig.getSite();//新增
4 WebServiceException e = null;
5 try {
6 url = new URL(str+"?wsdl");//修改
7 } catch (MalformedURLException ex) {
8 e = new WebServiceException(ex);
9 }
10 MYSERVICE_WSDL_LOCATION = url;
11 MYSERVICE_EXCEPTION = e;
12 }
复制代码

测试Test.java

复制代码
 1 public class Test {
2
3 /**
4 * @param args
5 */
6 public static void main(String[] args) {
7 // TODO Auto-generated method stub
8 MyService server = new MyService();
9 MyServicePortType spt = server.getMyServiceHttpPort();
10 System.out.println(spt.example("hello"));
11 }
12
13 }
复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值