一、序言
上篇,我已经写了一个简单的WebService服务器。看起来貌似不错,但我们真正的目的是想通过编程的方式来访问服务器,而不是通过eclipse带的Web Service浏览器来访问。服务器我们是一行行代码敲出来的,客户端同样我们也可以一步步设计出来,但是相对繁琐。JDK里面有个工具wsimport.exe,可以帮我们生成客户端代码,节省了很多时间。
二、使用JDK生成WebService客户端
首先,我们需要再创建一个客户端工程------jdkclient。创建好以后复制一下客户端工程的src目录路径
运行命令提示符(win+r>>>cmd),先进入自己客户端工程所在的盘符,在进入src目录,dos下输入cd 然后把复制好的src目录路径粘贴到命令提示符中(dos下不能使用ctrl+v快捷键,在dos下右击会出现粘贴选项),进入到src下后,输入wsimport,看看是否识别,如果不能识别命令,检查下系统的环境变量是否配好。
生成客户端的命令是wsimport -keep url //url为wsdl路径。
把服务器运行起来,dos下输入生成指令:wsimport -keep http://localhost:8080/service/HelloService?wsdl
注意三点:
·服务器要处于启动状态
·-keep前后有空格
·?wsdl不要忘记
运行后,如出现下图界面,说明已经自动生成客户端代码了。eclipse客户端工程上右击,刷新就可以看到生成的客户端代码了。
使用JDK1.8+MyEclipes 生成的代码可能报错。这是MyEclipse的一个bug,更换一个低版本的JDK就可以了
三、编写客户端调用方法
新建一个类,调用生成的getHelloServiceImplPort()方法,运行mian方法,查看控制台和服务器的控制台,看是否正确打印。
import com.gpj.service.HelloServiceImpl;
import com.gpj.service.HelloServiceImplService;
public class ClientTest {
public static void main(String[] args) {
HelloServiceImplService factory = new HelloServiceImplService();
HelloServiceImpl helloWS = factory.getHelloServiceImplPort();
String result = helloWS.sayHello("gpj");
System.out.println("client "+result);
}
}