大家好,欢迎来到IT知识分享网。
@WebService(name = “fruit”)
@Controller
public class WsWebService extends SpringBeanAutowiringSupport{
@SuppressWarnings(“static-access”)
@WebMethod
public Object getListByType(@WebParam(name = “userid”,@WebParam(name = “type”) String type) String userid,
) throws Exception {
Map<String, Object> mapReturn = new HashMap<String, Object>();
mapReturn.put(“apple “, 108);
mapReturn.put(“pear “, 120);
mapReturn.put(“apricot “, 128);
mapReturn.put(“peach “, 130);
return XmlHelper.map2Xmlstring(mapReturn);//返回xml格式数据
}
public static void main(String[] args) {
try {
//请求webservice接口
URL url = new URL(“http://127.0.0.1:8880/project/services/fruit?wsdl”); //webservice 接口地址
Service service = new Service();
Call call = (Call)service.createCall();
call.setTargetEndpointAddress(url);
call.setOperationName(“getListByType”); //方法名,和请求接口方法名称一致
call.setTimeout();
//参数添加参数,参数顺序,类型,必须和调用接口的服务端同步。不然会报unexpected element (uri:””, local:”appmark”). Expected elements are <{}jsonStr>
call.addParameter(“userid”,XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(“type”,XMLType.XSD_STRING, ParameterMode.IN);
call.setReturnType(XMLType.XSD_STRING);
call.setUseSOAPAction(true);
//这是的顺序和参数名称一一对应。
Object obj [] =new Object[] {“userid”,”type”};//请求参数
String ret = null;
ret = (String) call.invoke(obj);
logger.info(“getApasInfoCount Count====”+ret);
} catch (Exception e) {
e.printStackTrace();
}
}
}
PS:
一、WebService到底是什么?
先来看下标准的定义:Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。
其实,一言以蔽之:WebService是一种跨编程语言和跨操作系统平台的远程调用技术。
还可以从多个角度来理解WebService,从表面看,WebService就是一个应用程序向外界暴露出一个能通过Web进行调用的API,也就是说能用编程的方法通过Web来调用这个应用程序。我们把调用这个WebService的应用程序叫做客户端,而把提供这个WebService的应用程序叫做服务端。从深层次看,WebService是建立可互操作的分布式应用程序的新平台,是一个平台,是一套标准。它定义了应用程序如何在Web上实现互操作性,你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。
二、WebService平台技术
SOAP、WSDL、UDDI(UniversalDescriptionDiscovery andIntegration)三者构成了WebService的三要素。下面,详细阐述这三大技术:
- SOAP
- WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议。SOAP提供了标准的RPC方法来调用Web Service。
- SOAP协议组成:
- SOAP协议 = HTTP协议 + XML数据格式
- SOAP协议定义了SOAP消息的格式,SOAP协议是基于HTTP协议的,SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。打个比喻:HTTP就是普通公路,XML就是中间的绿色隔离带和两边的防护栏,SOAP就是普通公路经过加隔离带和防护栏改造过的高速公路。
- WSDL
- 好比我们去商店买东西,首先要知道商店里有什么东西可买,然后再来购买,商家的做法就是张贴广告海报。 WebService也一样,WebService客户端要调用一个WebService服务,首先要有知道这个服务的地址在哪,以及这个服务里有什么方法可以调用,所以,WebService务器端首先要通过一个WSDL文件来说明自己家里有啥服务可以对外调用,服务是什么(服务中有哪些方法,方法接受的参数是什么,返回值是什么),服务的网络地址用哪个url地址表示,服务通过什么方式来调用。
- WSDL(Web Services Description Language)就是这样一个基于XML的语言,用于描述Web Service及其函数、参数和返回值。它是WebService客户端和服务器端都能理解的标准格式。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应WebService的代理类代码。
- UDDI
- UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/87010.html