如何使用WebService服务

本文介绍如何使用JDK发布一个简单WebService,并详细解释了如何使用wsimport命令生成客户端调用代码,实现对远程WebService的服务调用。重点包括生成Java代码的过程、注意事项以及如何在客户端工程中整合这些代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此博文对应的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访问的,所以我们编写很小的代码就能访问网络中的服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值