概念 Webservice是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应
概念
Webservice是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
客户端调用步骤
- 打开控制台,cd到具体的目录下;
- 输入命令:wsimport -s . http://SERVICE-URL.asmx?wsdl;
- 将相应目录下生成的文件复制到自己的项目中;
- 在浏览器打开 http://SERVICE-URL.asmx?wsdl 从下往上阅读;
- 找到 wsdl:service name=”ServiceName” 标签,编写代码:
ServiceName sn = new ServiceName();
; - 找到 wsdl:port name=”PortSoap” binding=”tns:GenericServicesSoap”,编写代码:
ServiceNameSoap sns = gs.getServiceNameSoap();
- sns. 之后就可以看到相应的方法了,也可以继续参考wsdl;
Ps. wsimport -s F:\temp -p cn.your_package_name http://localhost:6666/service/xxxx?wsdl
可以设置生成地址和包名
第二种代码方式:
// 创建WSDL的URL
URL url = new URL("http://123.123.123/webService/ProxyService?wsdl");
// 创建服务名称
QName qname = new QName("http://app.xxx.com/", "ProxyService");
// 创建服务
Service service = Service.create(url, qname);
// 获取服务实现类
ProxyService port = service.getPort(new QName("http://app.xxx.com/", "ProxyServiceImplPort"),
ProxyService.class);
// 调用方法
String res = port.proxyFunction();
System.out.println(res);
问题&解决
- wsimport 的路径中不要有空格;
- 如果出现问题,可以把xml下载下来,修改完之后,用wsimport访问本地文件;
参考博客
http://blog.csdn.net/csdn_gia/article/details/54863549
https://www.cnblogs.com/yisheng163/p/4524808.html?utm_source=tuicool
https://www.cnblogs.com/jiang1995/articles/5132902.html