WebService详解-服务发布
发布时间:2020-12-16 22:47:40 所属栏目:安全 来源:网络整理
导读:WebService 一、简介: 要素: SOAP:基于HTTP协议 和XML数据格式的接口协议。即:服务于应用层的协议。 WSDL:是基于跨平台跨服务的标准,它基于XML的描述性语言,它描述了函数、属性、返回值、服务地址、服务名称等内容,是服务端和客户端的标准。客户端可
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
注意事项:地址的后缀名: 要有?WSDL 而且必须大写,否则访问不到。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |