Java调用webService应用
2017-05-17李茂斌岳海燕
李茂斌++岳海燕
摘要:WebService是不同系统之间信息交互的常用集成方式,在当前信息系统广泛应用的前景下,不同信息系统由不同开发企业来开发,导致系统之间的交互集成的市场前景一片看好,在这样的背景下WebService的简便易用优势凸显出来,得到了广大用户的青睐。本文针对java环境下调用webService方式进行了分析和归纳总结,详细分析了该方法的优势、每个步骤的含义和实际操作方式。
关键词:java;WebService;接口
中图分类号:TP311 文献标识码:A 文章编号:1007-9416(2017)03-0203-02
Abstract:WebService is common integration mode of information interaction between different systems, this paper analysis and summary call the webservice mode in the java environment. In addition, this paper detailed analysis the advantages of the method ,the meaning of each step and the actual operation mode.
Key Words:java;webService;port
1 概述
Web Service是一种可以接收从internet或者internet上的其它系统中传递过来的请求,轻量级的独立的通讯技术,是通过soap在web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。
Web Service主要目的是跨平台的可交互操作,为了实现这一目标,Web Service完全基于XML独立平台、独立软件供应商的标准,是创建的可互操作的、分布式应用程序的新平台。
2 优势分析
当前很多大系统的应用,带来不同系统之间交互的需求,传统交互方式工作量大,给系统带来了很大负担,而Web Service恰恰弥补了系统集成中传统方法的很多缺陷,因此受到广泛的应用。Web Service主要优点如下:
2.1 跨防火墙通信
系统用户成千上万,分布于不同地域,客户端和服务器端之间通常会有防火墙或者代理服务器,客户端和服务器端之间通信将是一个棘手的问题。传统的做法是浏览器作为客户端,写大量的JSP页面,把应用程序的中间层暴露给最终用户,这样的开发难度大,程序不好维护。我们追求的目标就是客户端代码不再依赖于HTML表单,客户端的编程就简单了。把中间层换成Web Service,就可以从用户直接调用中间层组件,省掉直接建立JSP页面那一步,这样就缩短了开发周期,减少了代码复杂度,并且增加了应用程序的可维护性。
2.2 应用程序的集成
大系统的开发者都知道,企业经常会把不同公司开发,用不同语言编辑,在不同平台上运行的各种系统集成到一起,这种集成会花费很大的开发力量,应用程序经常需要从一个应用程序中获取数据,或者把数据发送到其他平台应用程序中去,即使同一平台,不同软件厂商生产的各种软件也常常需要集成起来,应用Web Service,应用程序可以用标准的方法把数据“暴露”出来,供其他应用程序使用。
2.3 B2B集成
B2B指的是Business to Business,as in businesses doing business with other business,即企业和企业之间通过网络进行产品、服务及信息的交互。
Web Service是B2B集成成功的关键,通过Web Service,一个公司可以只把特定的数据提供给客户就可以了,Web Service运行在internet上,在世界的任何地方都可以轻易实现,运行成本较低。用Web Service来实现B2B集成的最大就是可以很容易的实现互操作性,不管他们在什么平台上运行,使用什么开发语言,大大减少了花在B2B上集成的时间和成本。
2.4 软件和数据的重用
Web Service在重用代码的同时,能够重用代码背后的数据。使用Web Service只需要直接调用远端的Web Service就可以了,可以很容易的把所有这些功能都集成到你的门户站点中,为用户提供一个统一的友好的界面。可以在应用程序中使用第三方的Web Service提供的功能,也可以把自己的应用程序通过Web Service提供给别人,这几种情况下都可以重用代码和代码背后的数据。
3 实现步骤
3.1 首先创建一个服务,服务器端提供一个方法如下
Public calss SayHello{
Public String getName(String name){
Return “hell0====”+name;
}
}
3.2 客户端访问方法
指出service所在的URL
String url =“http://120.120.120.1:8080/webservice/service/ligin.jws”;
創建一个服务调用
Service service = new Service();
Call call = (Call) service.createCall();
设置service所在的URL
call.setTargetEndpointAddress(url);
方法名和myservice.java方法名保持一致
call.setOperationName(getName);/
object数组封装了参数,参数为“this is test”,调用方法
String outStr = (String) call.invoke(new Object[]{this is test });
System.out.println(outStr)。
4 工程实现
WebService在java环境下,客户端连接服务器的方法如下:
String serIp; // WebService服务器IP+端口号
String serName; // 服务名称
String infName; // 接口名称
String StrName; // 参数名称
//调用webServers
String url = "http://"+serIp+"/webservice//services/"+serName;
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(url);
call.setOperationName(infName);//WSDL里面描述的接口名称
call.addParameter(StrName,XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
call.setUseSOAPAction(true);
call.setSOAPActionURI(url);
call.setReturnType(XMLType.SOAP_STRING);//设置返回类型
String temp=inStr; //传递的参数
/ 给方法传递参数,并且调用方法,outStr为返回值
outStr = (String) call.invoke(new Object[]{temp});
按照此方法,把参数传递给服务器,并且把处理后的结果传递回来,达到了不同信息系统之间参数交互的效果。
这种调用方法开发简单,调用简单,只要service提供方不改动对外的方法接口,客户端就不需要有代码改动,无需对Web Service有太深的了解,只要按照套路去调用就可以了。
參考文献
[1]林弘之.Web service原理与开发务实[M].北京:电子工业出版社,2003.11.
[2]青岛东合信息技术有限公司,等.Web service应用开发[M].北京:电子工业出版社,2015.02.