微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用WebService服务

此博文对应的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] 举报,一经查实,本站将立刻删除。

相关推荐