博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个简单的webService接口发布与实现
阅读量:4185 次
发布时间:2019-05-26

本文共 2126 字,大约阅读时间需要 7 分钟。

webService是什么

1、基于web的服务,服务器整出一些资源让客户端应用访问获取数据。

2、一个跨语言、跨平台的规范。
3、多个跨平台、跨语言应用间通信整合的方案。

什么时候使用webService?

1、同一家公司新旧应用之间的调用。

2、不同公司的应用之间调用。
3、一些提供数据的内容聚合应用:天气预报、股票行情。

webService中的几个重要术语

1、WSDL: (web service definition language)web服务描述语言

  • 对应一种类型的文件**.wsdl**
  • 定义了web service 的服务器端与客户端应用交互传递请求和响应数据的格式和方式。
  • 一个web service 对应一个唯一的wsdl文档

2、SOAP:(simple object access protocol)简单对象访问协议

  • 是一种简单的、基于HTTP 和 XML 的协议,用于在WEB 上交换结构化的数据。
  • soap消息: 请求消息响应消息
  • http + xml 片段。

3、SEI:( WebService EndPoint Interface)webservice终端接口

  • webService 服务器端用来处理请求的接口

4、CXF : Celtix + XFire

  • 一个apache的用于开发webService 服务器端和客户端的框架。

开发webservice

开发时使用JDK1.6及以上版本进行开发,工作过程中使用CXF进行开发。webservice开发由服务器端和客户端组成。

使用JDK开发webservice

一、开发服务器端

  • web service 编码:
    — 注解:@WebService( SEI 和 SEI 的实现类)
    —注解: @WebMethod(SEI中的所有方法)
  • 发布web service:
    — Endpoint(终端,发布webservice)
    **第一步:**创建一个接口,在接口上添加@WebService注解,方法上添加@WebMethod注解.这两个注解是JDK中的包
import javax.jws.WebMethod;    import javax.jws.WebService;@WebServicepublic interface WsHello {  @WebMethod  public String sayHello(String name);}`

**第二步:**实现接口,在实现类上添加@WebService注解

import javax.jws.WebService;@WebServicepublic class WsHelloImpl implements WsHello {  public String sayHello(String name) {  		System.out.println(" server sayHello()" + name);  		return "hello world" + name;  }}

**第三步:**发布webservice

import javax.xml.ws.Endpoint;import ws.WsHelloImpl;public class ServerTest {  public static void main(String[] args) {  	String address = "http://192.168.1.103/ws-test/hello";  	Endpoint.publish(address, new  WsHelloImpl());  	System.out.println("发布成功");  }}

二、开发客户端

  • 使用Eclipse提供的web service 浏览器访问
    — 查看对应的wsdl文档: …?wsdl(一般浏览器)
    —请求webService并查看请求和响应消息(通过eclipse中的webService浏览器)
  • 创建客户端应用编码方式访问
    — 借助JDK的bin中的wsimport.exe 工具生成客户端代码:
    命令:wsimport -keep url //url 为wsdl文件的路径
    — 借助生成的代码编写请求代码。
    **第四步:**在项目目录下执行以下命令:
    在这里插入图片描述
    在项目中生成如下代码:
    在这里插入图片描述
    第五步: 客户端请求调用
import ws.WsHelloImpl;import ws.WsHelloImplService;public class ClientTest { public static void main(String[] args) {	WsHelloImplService factory = new WsHelloImplService();	WsHelloImpl hello = factory.getWsHelloImplPort();		String result = hello.sayHello("Jack");	System.out.println("client:" + result);}}

转载地址:http://bnfoi.baihongyu.com/

你可能感兴趣的文章
在TensorFlow中编程
查看>>
用c实现一个压力测试工具
查看>>
圆周率计算公式
查看>>
排序算法之-选择排序
查看>>
排序算法之-基数排序
查看>>
scikit-learn
查看>>
原生java方法操作SQLite数据库
查看>>
sqlite 数据库驱动框架
查看>>
B树、B+树、B*树 总结
查看>>
kafka常用命令
查看>>
kafka顺序消息
查看>>
kafka 消息服务
查看>>
从零开始玩转JMX(一)——简介和Standard MBean
查看>>
究竟啥才是互联网架构中的高并发!
查看>>
数据库水平扩展与垂直扩展
查看>>
Jsp中include动作指令简介
查看>>
交互两个数(不引入第三个变量)
查看>>
C/C++面试题分享
查看>>
链表类型题目需要用到的头文件list.h
查看>>
tree类型题目需要用到的头文件tree.h
查看>>