WebService的WSDL详解以及远程访问WebService

article/2025/9/23 7:28:43

一、WSDL详解

1.wsdl是一个用于精确描述Web服务的文档,是一个遵循wsdl-xml模式的xml文档。

2.一个wsdl文档通常包括8个重要元素,即definitions、types、import、message、portType、operation、binding、service元素。

3.这些元素嵌套在definitions元素中,definitions是wsdl文档中的根文档。

WSDL 服务进行交互的基本元素: 
Types(消息类型):数据类型定义的容器,它使用某种类型系统(如 XSD)。 
Message(消息):通信数据的抽象类型化定义,它由一个或者多个 part 组成。 
Part:消息参数 
PortType(端口类型):特定端口类型的具体协议和数据格式规范。,它由一个或者多个 Operation组成。 
Operation(操作):对服务所支持的操作进行抽象描述,WSDL定义了四种操作: 
1.单向(one-way):端点接受信息; 
2.要求-响应(solicit-response):端点发送消息,然后接受相关消息; 
3.通知(notification[2] ):端点发送消息。

 (一) definitions元素

 所有的wsdl文档的根元素都是definitions元素,该元素封装了整个文档,同时通过其name提供了一个wsdl文档。除了提供一个命名空间targetNamespace之外,该元素没有其他作用。

(二)types元素

 

types元素作为一个容器,用于定义xml模式内置类型中没有描述的各种数据类型。当声明消息部分的有效时,消息定义使用了types元素中定义的数据类型和元素。

例如上面的例子:

        该部分定义了两个元素,SendMessageInfo和SendMessageInfoResponse

        SendMessageInfo:定义了一个复杂类型,仅仅包含两个简单的字符串messageCode和inputContent,用于操作的参数传入。并指明了参数的数据类型。

        SendMessageInfoResponse:定义了一个复杂类型,包含了一个简单的字符串,用于描述操作的返回值,并指明返回结果数据类型。

 (三)import元素

import元素可以在当前的WSDL文档中使用其他WSDL文档中指定的命名空间中的元素。

通常用于模块化WSDL文档。

必须有namespace属性和location属性:

        1.namespace属性:值必须与正导入的WSDL文档中生命的targetNameSpace相匹配。

        2.location属性:必须执行一个实际的WSDL文档,并且该文档不能为空

import格式如下:
<wsdl:import namespace="http://xxx.xxx.xxx/xxx/xxx" location="http://xxx.xxx.xxx/xxx/xxx.wsdl"/>

(四)message元素

message元素描述了Web服务使用消息的有效负载。message元素可以描述输出或者接受消息的有效负载。还可以描述SOAP文件头和错误detail元素的内容。定义message元素的方式取决于使用RPC样式还是文档样式的消息传递。

在文本中的message元素的定义,本文档使用了采用文档样式的消息传递:

 

 该例子定义了两个消息,SendMessageInfoSoapIn和SendMessageInfoSoapOut

SendMessageInfo:

        是请求操作格式,由一个消息片段组成,名字为parameters,元素为 types中的SendMessageInfo。

SendMessageInfoResponse:

        SendMessageInfo的相应消息格式,由一个消息片段组成,名为parameters,元素为types中的SendMessageInfoResponse。

如果采用RPC样式消息传递,只需要将文档中的element元素修改为type即可。

 (五)portType元素

portType元素定义了Web服务的抽象接口。该接口有点类似Java的接口,都是定义了一个抽象类型和方法,没有定义实现。在WSDL中,portType元素是由binding和service元素来实现的,这两个元素用来说明Web服务实现使用的Internet协议、编码方案、以及Internet地址。

 

 一个portType中可以定义多个operation,一个operation可以看作是一个方法。

例如上面这个例子:

        包含了一个操作SendMessageInfo方法,同时包含了input和output表明该操作是一个请求/响应模式,请求消息是前面定义的SendMessageInfoSoapIn,响应消息是SendMessageInfoSoapOut。

input标识传递到Web服务的有效负载,output标识传递给客户的有效负载。

这个例子相当于抽象类中定义了一个抽象方法SendMessageInfo,方法的参数的定义和返回值都定义在了types中,方法名的定义定义在了message中。

 (六)binding

binding元素将portType映射到一组具体协议(SOAP和HTTP),消息传递样式、编码样式。通常binding元素与协议转悠的元素和在一起使用。

 这部分将服务访问节点的抽象定义与SOAP、HTTP绑定,描述如何通过SOAP/HTTP来访问按照前面描述的访问入口点类型部署得访问入口。

其中规定了在具体SOAP调用时,应当使用的soapAction,这个Action在WebService代码调用中是很重要的。具体的使用需要参考特定的协议定义的元素。

 (七)service元素和port元素

 service元素包含一个或者多个port元素,其中每个port元素表示一个不同的Web服务。port元素将URL赋给一个特定的binding,甚至可以使两个或者多个port元素将不同的URL赋值给相同的binding。

 

 引用图解:

 

2、 远程调用WebService

解析获得服务地址里面的方法和参数。

根据方法和参数进行远程调用访问:

        

 创建Servce,根据service获取call对象,传入webservice链接,方法和参数,以及返回类型,使用invoke方法进行远程访问。

 service.createCall();:创建call对象
call.setTargetEndpointAddress(endpoint);:传入访问路径
call.setOperationName("SendMessageInfo")传入方法名,根据WSDL解析获得
call.addParameter("messageCode", XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);:传入接口参数以及返回值类型
String result = (String) call.invoke(new Object[]{input1,input2});:远程访问webservce接口接收返回数据result。

 


http://chatgpt.dhexx.cn/article/SUTkZmjL.shtml

相关文章

WebService中的WSDL详解

WebService中的WSDL详解 有人在WebService开发的时候&#xff0c;特别是和第三方有接口的时候&#xff0c;走的是SOAP协议&#xff0c;然后用户&#xff08;或后台&#xff09;给你一个WSDL文件&#xff08;或网址&#xff09;&#xff0c;说按照上面的进行适配&#xff0c; 这…

云计算与网格计算关系有别

导读&#xff1a;最近不断有人或询问云计算与网格计算的区别&#xff0c;或认为云计算是网格计算的延伸&#xff0c;甚至有学者写出比较的论文。事实上&#xff0c;云计算和网格计算本没有任何关系&#xff0c;但本文将澄清云计算和网格计算的区别&#xff0c;至于云计算和分布…

SOA、网格计算、云计算与P2P技术

1.面向服务的体系结构SOA 1&#xff09;定义&#xff1a;Service-Oriented Architecture&#xff0c;一种应用的体系结构&#xff0c;其中所有的功能都定义为独立的具有可调用的接口的服务。这些服务可以在一个流程中被调用从而完成相应的商业处理过程。服务可以位于同一个应用…

简单理解串行计算、并行计算、分布式计算、网格计算与云计算

并行计算 并行计算可以划分成时间并行和空间并行。时间并行即流水线技术&#xff0c;空间并行使用多个处理器执行并发计算&#xff0c;当前研究的主要是空间的并行问题。 并行计算是相对于串行计算来说的。要理解并行计算&#xff0c;首先需要了解串行计算。串行计算是不将任…

网格计算和云计算之间的比较

转自&#xff1a;http://www.chinacloud.cn/show.aspx?id15020&cid14 随着网络技术的不断的发展和深入&#xff0c;网络信息越来越多&#xff0c;数据海量的进行挖挖取&#xff0c;而随之而来的就是新概念和新技术的诞生&#xff0c;目前有两种网络的计算方法最受人们关注…

云计算机基于什么网络吗,什么是云计算,什么是网格计算,他们之间有什么区别...

原标题&#xff1a;什么是云计算&#xff0c;什么是网格计算&#xff0c;他们之间有什么区别 随着网络技术的广泛应用和深化&#xff0c;网络信息与服务趋于海量&#xff0c;海量数据挖掘处理、分布异构等问题逐渐显现&#xff0c;随之新概念新技术也层出不穷&#xff0c;以云计…

高性能计算中的并行计算、分布式计算、网格计算和云计算之间的区别与联系

并行计算、分布式计算、网格计算与云计算都属于高性能计算&#xff08;High Performance Computing&#xff0c;HPC&#xff09;的范畴&#xff0c;主要目的在于对大数据的分析与处理&#xff0c;但它们却存在很多差异。电子海图云服务是基于高性能计算的理论技术、通过对传统服…

云计算、分布式计算和网格计算,主要有什么区别,基本概念是什么?

分布式计算 分布式计算是利用互联网上的计算机的中央处理器的闲置处理能力来解决大型计算问题的一种计算科学。研究如何把巨大的问题分成许多小的部分&#xff0c;然后把这些小任务分配给许多计算机进行处理&#xff0c;最后把这些计算结果综合起来得到最终的结果。在两个或多…

并行计算、分布式计算、集群计算和网格计算的介绍,以及主要有哪些区别?

并行计算&#xff08;Parallel Computing&#xff09;      并行计算或称平行计算是相对于串行计算来说的。并行计算&#xff08;Parallel Computing&#xff09;是指同时使用多种计算资源解决计算问题的过程。为执行并行计算&#xff0c;计算资源应包括一台配有多处理机&a…

什么是云计算,什么是网格计算,两者之间有什么区别?

在此表述云计算和网格计算的区别&#xff0c;至于云计算和分布式计算、效用计算等等概念&#xff0c;读者可以以此类推。 狭义云计算是指IT基础设施的交付和使用模式&#xff0c;指通过网络以按需、易扩展的方式获得所需的资源&#xff08;硬件、平台、软件&#xff09;。提供…

云计算、网格计算、效用计算、自主计算的区别辨析

云计算 什么是云&#xff1f; 云计算中的资源池称为“云”。”云”是一些可以自我维护和管理的虚拟资源&#xff0c;通常是一些大型服务器集群&#xff0c;包括计算服务器、存储服务器和宽带资源等。 为什么叫云&#xff1f; 因为云计算中的云在某些方面具有现实中云的特征&…

网格计算介绍

网格计算&#xff08;Grid computing&#xff09;是分布式计算的一种&#xff0c;是一门计算机科学。它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分&#xff0c;然后把这些部分分配给许多计算机进行处理&#xff0c;最后把这些计算结果综合起来得到最…

网格计算简介

内容提要 主要介绍如下内容&#xff1a;1&#xff09;什么是网格计算2&#xff09; 网格计算能做什么3&#xff09; 主要组成部分是什么4&#xff09; 网格计算的标准5&#xff09; 现在可以建设网格了吗6&#xff09; IBM为网格计算提供什么工具7&#xff09; 如何为我的应用提…

XSS基础

文章目录 一、XSS是什么&#xff1f;二、XSS漏洞原理1.XSS和SQL注入的区别2.反射型XSS3.存储型XSS4.DOM型XSS5.防范xss 一、XSS是什么&#xff1f; XSS攻击通常指的是通过利用网页开发时留下的漏洞&#xff0c;通过巧妙的方法注入恶意指令代码到网页&#xff0c;使用户加载并执…

XSS攻击原理与解决方法

一、概述 XSS攻击是Web攻击中最常见的攻击方法之一&#xff0c;它是通过对网页注入可执行代码且成功地被浏览器执行&#xff0c;达到攻击的目的&#xff0c;形成了一次有效XSS攻击。一旦攻击成功&#xff0c;它可以获取到用户的联系人列表&#xff0c;然后向联系人发送虚假诈骗…

如何防止XSS攻击?

1 XSS 1.1 XSS 介绍 一个案例 某天&#xff0c;公司需要一个搜索页面&#xff0c;根据 URL 参数决定关键词的内容。小明很快把页面写好并且上线。代码如下&#xff1a; <input type"text" value"<% getParameter("keyword") %>">…

XSS知识总结

XSS基础 跨站脚本&#xff08;英语&#xff1a;Cross-site scripting&#xff0c;通常简称为&#xff1a;XSS&#xff09;是一种网站应用程序的安全漏洞攻击&#xff0c;是代码注入的一种。它允许恶意用户将代码注入到网页上&#xff0c;其他用户在观看网页时就会受到影响。这…

XSS常见的绕过手法

XSS学习笔记 XSS常见的绕过手法大小写绕过双写绕过开口标签空格回车TAB其他非黑名单标签和事件编码转义一些特殊过滤情况一些思维导图总结一些参考链接 XSS常见的绕过手法 大小写绕过 HTML对标签大小写不敏感&#xff0c;可以利用大小写混用绕过 例如&#xff1a;<script&…

什么是XSS攻击?

网络千万条&#xff0c;安全第一条。网安不规范&#xff0c;网站都完蛋&#xff01; 前端工程师接触最多的漏洞我想就是 XSS 漏洞了&#xff0c;然鹅并不是所有的同学对其都有一个清晰的认识。这篇文章将带领大家认清XSS攻击&#xff0c;以及对于XSS攻击该如何防范。 什么是…

【web渗透】XSS跨站请求攻击

&#x1f495;&#x1f495;&#x1f495; 博主昵称&#xff1a;摆烂阳&#x1f495;&#x1f495;&#x1f495; &#x1f970;博主主页跳转链接 &#x1f469;‍&#x1f4bb;博主研究方向&#xff1a;web渗透测试 、python编程 &#x1f4c3; 博主寄语&#xff1a;希望本篇文…