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

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();  
④查看发布服务

注意事项:地址的后缀名: 要有?WSDL 而且必须大写,否则访问不到。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐