WebService详解-服务发布

WebService

一、简介:
要素:
SOAP:基于HTTP协议 和XML数据格式的接口协议。即:服务于应用层的协议。
WSDL:是基于跨平台跨服务的标准,它基于XML的描述性语言,它描述了函数、属性、返回值、服务地址、服务名称等内容,是服务端和客户端的标准。客户端可以使用WSDL文件生成代码。
SOA:面向服务架构。webservice就是SOA的一种。

二、特点:
相比于SOCKET等通讯方式,webservice由于数据格式是xml这种大文本的格式,所以效率要低。
webservice传输的属性的类型有一定的要求,webservice可以传递 基本类型、Stirng字符串、类、List集合等,但是不能传递Map这种类型的数据。但是开发人员做一个包装类来实现Map 的功能。
webservice使用的是客户/服务器方式,即:请求-相应方式。
最大的优点:相比其他网络通讯方式,webservice最大的优点是跨平台、跨系统的远程调用技术。这是人们选用webservice无法抗拒的地方。跨平台好理解:比如你的程序是java语言编程的,但是要和一个.NET语言编写的程序进行数据通讯。跨服务器:webservice实现了一个强大的RPC(远程调用技术)功能,这种RPC是不分语言和操作系统的远程调用。

很明显,既然是HTTP协议,那么webservice的用武之地就是外网,对于单片机、局域网来说,它的作用不太明显。
三、实现
服务端实现
①服务端定义接口:
import javax.jws.WebService;

@WebService
public interface HelloWord {
	public String getName(String name);
	public String getAge(int age);
}

注意 事项: 标签 @WebService必不可少,webservice是Java本身自带的。
②服务器定义接口实现类:
import javax.jws.WebService;

import com.nz.test.HelloWord;
@WebService
public class HelloWordImpl implements HelloWord{

	@Override
	public String getName(String name) {
		return "My name is "+name;
	}

	@Override
	public String getAge(int age) {
		return "My age is "+age;
	}
}
事项: 标签 @WebService必不可少,否则会报错。
③发布服务:
package com.nz.service;

import javax.xml.ws.Endpoint;

import com.nz.test.HelloWord;
import com.nz.test.impl.HelloWordImpl;

public class ServiceMain {

	//发布服务地址
	private static String addr = "http://localhost:8080/com/nz/service/HelloWord";
	
	public static void main(String[] args) {
		//获取具体的实现类
		HelloWord hw = new HelloWordImpl();
		//发布服务
		Endpoint.publish(addr, hw);
	}

}
注意事项:此处是使用的java自带的 Endpoint类的静态方法publish发布的。
还有一种发布服务的方法是需要依赖CXF的jar包来实现的。
通过CXF提供的JaxWsServerFactoryBean来发布webservice  
JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();  
factory.setServiceClass(HelloWorldImpl.class);  
factory.setAddress("http://localhost:8080/HelloWorld");  
Server server = factory.create();  
server.start();  
④查看发布服务
使用浏览器访问地址: http://localhost:8080/com/nz/service/HelloWord?WSDL
WebService详解-服务发布_第1张图片
注意事项:地址的后缀名: 要有?WSDL 而且必须大写,否则访问不到。


你可能感兴趣的:(WebService详解-服务发布)