我是靠谱客的博主 害怕店员,最近开发中收集的这篇文章主要介绍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);

 

最后

以上就是害怕店员为你收集整理的webservice之使用JDK实现webservice的全部内容,希望文章能够帮你解决webservice之使用JDK实现webservice所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部