Webservice soap wsdl的区别


Web Service完结业务诉求:Web Service是真实“就事”的那个,供给一种就事接口的总称。
WSDL供给“能办的事的文档阐明”:对要供给的效劳的一种描绘格局。我想帮你的忙,但是我要通知你我都能干啥,以及干这些工作需求的参数类型。
SOAP供给“恳求”的规范:向效劳接口传递恳求的格局,包括办法和参数等。你想让人家就事,总得通知人家你想干啥吧,SOAP即是界说这个“恳求”的格局的,按照SOAP界说的“恳求”格局“书写”恳求就能够确保Web Service能够正确的解读你想让它干啥以及你为它供给了啥参数。在这个恳求中,你需求描绘的首要问题有:向哪个Web Service发送恳求,恳求的参数类型、参数值、返回值类型。这些都“填写”完毕,也就完结了契合SOAP规范的SOAP音讯。
 

wsdl和soap虽然是web service的两大规范,但是两者并没有必定的联系,都能够独立运用。
?

  wsdl供给了一个一致的接口,当前已经成为一个国际上公认的规范,经过wsdl供给的接口能够拜访不相同类型的资本(如java、c#、C、C、C++等),因为wsdl是根据xml,与言语渠道无关的。别的wsdl供给了binding和service元素,用以绑定接口到具体的效劳,完结了接口与完结的分离。
?
soap(简略目标拜访协议)是一种根据http的传输协议,用来拜访长途效劳

 


  wsdl与soap的联系在于:wsdl绑定效劳的时分能够设定运用的协议,协议能够是soap、http、smtp、ftp等任何一种传输协议,除此以外wsdl还能够绑定jms、ejb及local java等等,不过都是需求对binding和service元素做拓展的,并且需求拓展效劳器的功用以撑持这种拓展

 

soap协议是一种恳求和应对协议规范,而http是web传输协议,soap的传输是能够根据http的,但也能够根据其他的传输协议,如ftp、smtp等。

 

简略目标拜访协议(SOAP)是W3C安排的一个Note, 它描绘了一种在涣散的或分布式的环境中怎么交流信息的轻量级协议。SOAP是一个根据XML的协议,它包括三个有些:SOAP封装(Envelop),封装界说了一个描绘音讯中的内容是啥,是谁发送的,谁应当承受并处置它以及怎么处置它们的结构;SOAP编码规矩(Encoding Rules),用于表明应用程序需求运用的数据类型的实例;SOAP RPC表明(RPC Representation),表明长途过程调用和应对的协议;SOAP能够和多种传输协议绑定(Binding),运用底层协议交流信息。在这个文档中,当前只界说了SOAP怎么和HTTP以及HTTP拓展进行绑定的结构。

SOAP是个通讯协议, SOAP在HTTP协议的基础上,把编写成XML的REQUEST参数, 放在HTTP BODY上提交个WEB SERVICE效劳器(SERVLET,ASP啥的) 处置完结后,结果也写成XML作为RESPONSE送回用户端, 为了运用户端和WEB SERVICE能够彼此对应,能够运用WSDL作为这种通讯方法的描绘文件,运用WSDL东西能够主动生成WS和用户端的结构文件,SOAP具有把杂乱目标序列化绑缚到XML里去的能力。

SOAP的前身是RPC, 即是长途呼叫处置的协议,这个协议安全性不是极好,大都防火墙都会阻挠RPC的通讯包,而SOAP则运用HTTP协议作为基本的协议,运用端口80使得SOAP能够透过防火墙,完结RPC的功用。

SOAP协议和HTTP协议相同,都是底层的通讯协议,仅仅恳求包的格局不相同罢了,SOAP包是XML格局的,如今咱们编写WEB SERVICE不需求深入了解SOAP也没联系。假如SERVICE和CLIENT在相同的环境下运用SOAP,因为通常情况下都有主动生成SOAP程序结构的东西,因而不知道细节也没联系. 但是, 假如CLIENT和SERVICE的环境不相同,比如说JAVA的Client和.NET的SERVICE进行通讯,或许是VB CLIENT和TOMCAT下的JAVA SERVICE通讯,仍是要知道一点细节为好. 特别是, WSDL或许UDDI都不是规范,假如不让用就只好手艺制造SOAP MESSAGE啦。

 

例子:public void sendSms() throws Exception {

        String qqCode = "416501600";//qq号码

        String urlString = "

QName opAddEntry = new QName("http://www.fanselang.com","plus");

QName opAddEntry = new QName("http://www.haomad.com","plus");

QName opAddEntry = new QName("http://www.metabase.cn","plus");

QName opAddEntry = new QName("http://www.3h5.cn","plus");

QName opAddEntry = new QName("http://www.4lunwen.cn","plus");

QName opAddEntry = new QName("http://www.zx1234.cn","plus");

QName opAddEntry = new QName("http://www.majiangji168.cn","plus");

QName opAddEntry = new QName("http://www.penbar.cn","plus");

QName opAddEntry = new QName("http://www.whathappy.cn","plus");

QName opAddEntry = new QName("http://www.lunjin.net","plus");

QName opAddEntry = new QName("http://www.ssstyle.cn","plus");

QName opAddEntry = new QName("http://www.91fish.cn","plus");

        String xml = JxSendSmsTest.class.getClassLoader().getResource("SendInstantSms.xml").getFile();

        String xmlFile=replace(xml, "qqCodeTmp", qqCode).getPath();

        String soapActionString = "http://WebXml.com.cn/qqCheckOnline";

        URL url = new URL(urlString);

        HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();

        File fileToSend = new File(xmlFile);

        byte[] buf = new byte[(int) fileToSend.length()];

        new FileInputStream(xmlFile).read(buf);

        httpConn.setRequestProperty("Content-Length", String.valueOf(buf.length));

        httpConn.setRequestProperty("Content-Type", "text/xml; charset=utf-8");

        httpConn.setRequestProperty("soapActionString", soapActionString);

        httpConn.setRequestMethod("POST");

        httpConn.setDoOutput(true);

        httpConn.setDoInput(true);

        OutputStream out = httpConn.getOutputStream();

        out.write(buf);

        out.close();

 

        byte[] datas=readInputStream(httpConn.getInputStream());

        String result=new String(datas);

        //打印返回结果

        System.out.println("result:" + result);

Webservice soap wsdl的区别,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。