您的位置:首页 > 编程语言 > Java开发

WebService学习笔记系列之三----通过javax.xml.ws.Service的方式调用WebService

2013-12-19 22:03 561 查看
在上一篇《WebService学习笔记系列之二----通过wsimport的方式调用WebService》文章中讲解了通过wsimport的方式调用WebService。本文章学习使用javax.xml.ws.Service类来调用WebService。下面贴出调用的代码

import java.net.MalformedURLException;
import java.net.URL;

import javax.xml.namespace.QName;

import com.opertion.wsimport.HiService;

/**
* 使用Service类进行调用
* @author Administrator
*/
public class Service {
public static void main(String[] args) throws MalformedURLException {
//wsdl网络路径
URL url = new URL("http://localhost:8090/hi/sayHi?wsdl");
//服务描述中服务端点的限定名称  两个参数分别为 命名空间 服务名
QName qName = new QName("http://com.sc.ws", "HiService");
//创建服务对象
javax.xml.ws.Service service = javax.xml.ws.Service.create(url, qName);
//获得Hiservice的实现类对象
HiService hiService = service.getPort(new QName("http://com.sc.ws","HiServicePort"),HiService.class);
//调用WebService方法
System.out.println(hiService.sayHi("xiaoming"));
}
}


在上述中的命名空间、服务名等是从哪里得到的呢?下面贴出一张图说明:



图中1为命名空间、2为限定名的本地部分 3为服务端口

需要注意的是在上述的调用WebService过程中存在一个HiService接口。Hiservice接口是怎么来的呢?其实它还是通过wsimport的方法生成处理来的。在使用wsimport方式的时候会生成一个服务接口类,在这次的调用中需要使用到它。

其实通过wsimport方式和上述的方式本质是完全一样的。wsimport就是封装过上述的调用方式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐