此博文对应的WebService服务端为使用JDK发布一个简单WebService 。现在我们就要使用这个WebService。
首先要使用JDK自带的命令wsimport,它可以根据wsdl文档生成客户端调用代码的工具.无论服务器端的WebService是用什么语言写的,都将在客户端生成Java代码.服务器端用什么写的并不重要.wsimport.exe位于JAVA_HOME\bin目录下.
常用参数为:
-d<目录> - 将生成.class文件。默认参数。
-s<目录> - 将生成.java文件。
-p<生成的新包名> -将生成的类,放于指定的包下。
(wsdlurl) - http://server:port/service?wsdl,必须的参数。
示例:控制台中C:\Documents and Settings\Administrator>wsimport -s F:\ -p com.client.jdk.wsimporthttp://localhost:1111/hello?wsdl生成的文件如下:
注意:-s不能分开,-s后面是要存储的位置,用于指定源代码生成的目录 。你可以将生成的客户端调用代码工具打包成jar,也可以不打包直接使用,将它复制到你客户端程序中使用即可。
创建一个WSClient的工程,将刚刚生成的客户端调用代码的工具复制到工程里,如图:
编写客户端调用自己写的服务类 Client.java
package com.client.jdk; import com.client.jdk.wsimport.MyHelloService; import com.client.jdk.wsimport.MyHelloServiceService; /** * @author jackphang * @date 2013-4-11 * @description 根据wsimport命令生成客户端代码来调用WebService服务 F:\>wsimport -s . -p * com.client.jdk.wsimport * http://localhost:1111/hello?wsdl会生成两种文件.class和.java 。 * 而在C:\Documents and Settings\Administrator>wsimport -s F:\ -p * com.client.jdk.wsimpo rt * http://localhost:1111/hello?wsdl,只会生成.java的文件 */ public class Client { /** * @param args */ public static void main(String[] args) { // 获取WebService提供的服务 MyHelloServiceService service = new MyHelloServiceService(); // 获得自己提供的服务 MyHelloService helloService = service.getMyHelloService(); // 调用服务中的方法 String str = helloService.mySayHello("你大爷的",1); System.out.println("服务器返回:" + str); } }
前提是你的服务端必须启动才能调用成功,或者会抛出如下异常
Exception in thread "main" javax.xml.ws.WebServiceException: Failed to access the WSDL at:http://localhost:1111/hello?wsdl. It Failed with:
Connection refused: connect.
我们生成的客户端代码工具已经封装好了对服务器端服务的访问,底层是通过Socket访问的,所以我们编写很小的代码就能访问网络中的服务。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。