webservice之使用JDK实现webservice

webservice简介
Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。

简单的说,WebService就是一种跨编程语言和跨操作系统平台的远程调用技术。所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然。跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行。 远程调用,就是一台计算机的应用可以调用其他计算机上的应用。例如:支付宝,支付宝并没有银行卡等数据,它只是去调用银行提供的接口来获得数据;还有天气预报等,也是气象局把自己的系统服务以webservice服务的形式暴露出来,让第三方网站和程序可以调用这些服务功能。

Web Service开发可以分两方面
服务端开发:把公司内部系统的业务方法发布成Web Service服务,供远程合作单位和个人调用。
客户端开发:调用别人发布的Web Service服务,大多数人从事的开发都属于这个方面。例如,调用天气预报Web Service服务。
WebService的开发手段
使用JDK开发(1.6以上版本)
使用Axis2框架开发(工作中使用)
WebService的工作调用原理
对客户端而言,我们给这个类WebService客户端API传递wsdl文件的url地址,这些API就会创建出底层的代理类,调用这些代理,就可以访问到webservice服务。代理类把客户端的方法调用变成soap格式的请求数据再通过HTTP协议发出去,并把接收到的soap数据变成返回值返回。对服务端而言,各类WebService框架的本质就是一个大大的Servlet,当远程调用客户端给它通过http协议发送过来soap格式的请求数据时,它分析这个数据,就知道要调用哪个java类的哪个方法,于是去查找或创建这个对象,并调用其方法,再把方法返回的结果包装成soap格式的数据,通过http响应消息回给客户端。

WebService原理
XML,SOAP和WSDL就是构成WebService平台的三大技术 。

WebService采用Http协议来在客户端和服务端之间传输数据。WebService使用XML来封装数据,XML主要的优点在于它是跨平台的。

WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议规定的。

WebService服务器端首先要通过一个WSDL文件来说明自己有什么服务可以对外调用。简单的说,WSDL就像是一个说明书,用于描述WebService及其方法、参数和返回值。 WSDL文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。WebService服务提供商可以通过两种方式来暴露它的WSDL文件地址:1.注册到UDDI服务器,以便被人查找;2.直接告诉给客户端调用者。

WebService交互的过程就是,WebService遵循SOAP协议通过XML封装数据,然后由Http协议来传输数据。

JDK实现WebService
(1)建一个接口Person,创建方法

@WebService //使用@WebService注解标注WebServiceI接口
public interface WebServiceI{
@WebMethod //使用WebMethod注解标注WebService接口中的方法
public String say(String what);
}
(2)编写WebServiceI接口的实现类WebServiceImpl

@WebService //使用@WebService注解标注实现类
public class PersonImpl implements WebServiceI{
@Override
public String say(String what){
System.out.println(“服务端:”+what);
return “正在说”+what;
}
}
(3)写发布类WebServicePublish,使用Endponit(终端)类发布WebService

String address = “http://172.20.10.5:6868/WS_Service/webService”;//IP地址是本机动态地址
Endpoint.publish(address, new WebServiceImpl());
System.out.println(“服务端发布WebService成功…”);
(4)使用Eclipse自带的工具测试服务端

http://172.20.10.5:6868/WS_Service(项目名)/webService(随意写)?wsdl
注意IP地址

客户端
(1)创建终端工程,主要用来实现接收服务端的暴露。
(2)找到客户端源代码路径,使用命令进行解析
wsimport -keep http://172.20.10.5:6868/WS_Service/webService?wsdl
建议:在src中右击操作输入命令,让产生的文件都生成在src中。

(3)创建Test.java测试类,在main方法中:

PersonImpService personImpService =new PersonImpService();
PersonImp personImp=personImpService.getPersonImpPort();
String str=personImp.say(“hello”);
System.out.println(str);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值