欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

WebService第一课

程序员文章站 2022-04-29 20:58:54
...

什么是WebService 

webservice是一种跨平台,跨语言的规范,用于不同平台,不同语言开发的应用之间的交互。

Web services 使用 XML 来编解码数据,并使用 SOAP 借由开放的协议来传输数据。

快速实现一个基于jws的weservice项目

1、服务器的建立

创建接口

@WebService
public interface MyServices {
    public String sayHello(String name);

 创建实现类

@WebService(endpointInterface="org.gege.webservice.hello.MyServices")
public class MyServiceImpl implements MyServices {

	@Override
	public String sayHello(String name) {
		System.out.println("Hello "+ name);
		return name;
	}

开启服务

public class MyService {
	//webService 服务
	public static void main(String[] args) {
			String address ="http://localhost:8881/ns";
			Endpoint.publish(address,new MyServiceImpl());
	}

打开浏览器访问 http://localhost:8881/ns?wsdl

2、客户端的建立

public class WebServiceClient {

	//webService 客户端
	public static void main(String[] args) throws MalformedURLException {
		//创建访问wsdl服务地址的url
		URL url =new URL("http://localhost:8881/ns?wsdl");
		//通过Qname指定服务的具体信息
		QName qName = new QName("http://hello.webservice.gege.org/", "MyServiceImplService");
		//创建服务
		Service service =  Service.create(url,qName);
		//实现接口
		MyServices services = service.getPort(MyServices.class);
		//调用服务的功能
		System.out.println(services.sayHello("gege"));
		
		//此客户端实现 依赖了服务的接口  存在缺陷
	}

通过wsimport则生成Java的客户端实现

wsimport简介

wsimport也是在JDK的bin目录下的一个exe文件(Windows版),主要功能是根据服务端发布的wsdl文件生成客户端存根及框架,负责 与Web Service 服务器通信,并在将其封装成实例,客户端可以直接使用,就像使用本地实例一样。对Java而言,wsimport帮助程序员生存调用web service所需要的客户端类文件.java和.class。要提醒指出的是,wsimport可以用于非Java的服务器端,如:服务器端也许是C# 编写的web service,通过wsimport则生成Java的客户端实现。

命令参数说明:

-d 生成客户端执行类的class文件的存放目录

-s 生成客户端执行类的源文件的存放目录

-p 定义生成类的包名

-keep 选项用来指示是否保留编译后的源文件

WebService第一课

通过wsimport生成的代码来实现客户端调用服务器端

	public static void main(String[] args) {
		MyServiceImplService myServiceImplService = new MyServiceImplService();
		MyServices myServiceImplPort = myServiceImplService.getMyServiceImplPort();
		System.err.println(myServiceImplPort.sayHello("gege"));
	}
相关标签: webservice