本文中介绍如何根据一个webservice串来访问接口中的方法,至于如何建立webservice服务器请见另一篇文章:基于Java的WebService(XFire)。

 

例如对方公司给的webservice串为:http://188.16.225.190:8080/TT/services/QbldService?wsdl

 

开发的方法为:testa(String args),testb(String args).

 

可以通过如下方法给testa传递数据。

 



Java代码   


1. package
2.   
3. import
4. import
5. import
6. import
7.   
8. import
9.   
10. public class
11.   
12. /** 
13.      * @param args 
14.      */
15. public static void main(String[] args) throws
16. // TODO Auto-generated method stub 
17. new
18.     }   
19.   
20. public void load() throws
21. // 获得配置文件,qbldInterface.properties文件放在了src文件夹下 
22. this.getClass().getClassLoader()    
23. "qbldInterface.properties");    
24. new
25. try
26. // 把配置文件载入Properties类 
27.             p.load(inputStream);   
28. //System.out.println(p.getProperty("a")); 
29. "qbptjk"));    
30.   
31. "qbptjk");    
32.   
33. // 如果不用读取文件的方法,可以把serviceUrl替换为http://172.16.225.170:8080/TT/services/QbldService?wsdl 
34. new Client(new
35. /** 
36.              * invoke中的第一个参数为要调用的方法 String 
37.              * invoke中的第二个参数为要传递给该方法的参数 Object[] 
38.              * invoke的返回值是个Object[],接收远程方法的返回值 
39.              */
40. "testa", new String[] { "张三"
41. 0]);    
42.   
43. catch
44. // TODO Auto-generated catch block 
45.             e.printStackTrace();   
46.         }   
47.     }   
48.   
49. }

 

qbldInterface.properties文件如下 :

 



Properties代码   


1. qbptjk=http://172.16.225.170:8080/TT/services/QbldService?wsdl

 

如果服务器端出现这个错误的解决办法:

com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog

把服务器端用到的xml编码改为GBK.(原来应该是UTF-8)