本文中介绍如何根据一个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)