什么是wsdl?Java调用wsdl,怎么实现

2024-03-26 05:10:02 6

什么是wsdl?Java调用wsdl,怎么实现

这篇文章给大家聊聊关于wsdl,以及什么是wsdl对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

本文目录

什么是wsdl

读懂WSDL 1. WSDL 是什么WSDL 指网络服务描述语言 (Web Services Description Language)。 是一种使用 XML 编写的文档。这种文档可描述某个 Web service。它可规定服务的位置,以及此服务提供的操作(或方法)。2. WSDL 文档结构WSDL 文档是利用这些主要的元素来描述某个 web service 的:元素 定义 《portType》 最重要的 WSDL 元素,它可描述一个 web service可被执行的操作以及相关的消息。 可以把 《portType》 元素比作传统编程语言中的一个函数库(或一个模块、或一个类)。 《message》 用于描述一个操作的数据元素。每个消息均由一个或多个部件组成。可以把这些部件比作传统编程语言中一个函数调用的参数。 《types》 web service 使用的数据类型定义。为了最大程度的平台中立性,WSDL 使用 XML Schema 语法来定义数据类型。 《binding》 web service 使用的通信协议元素。为每个端口定义消息格式和协议细节。 一个 WSDL 文档的主要结构l 抽象定义 Types 独立与机器和语言的类型定义Messages 包括函数参数(输入与输出分开)或文档描述PortTypes 引用消息部分中消息定义来描述函数签名(操作名、输入参数、输出参数)2 具体定义Bindings PortTypes部分的每一操作在此绑定实现Services 确定每一绑定的端口地址 文档形式为:《definitions》 《types》 definition of types........《/types》 《message》 definition of a message....《/message》 《portType》 definition of a port.......《/portType》 《binding》 definition of a binding....《/binding》 《/definitions》WSDL 文档可包含其它的元素,比如 extension 元素,以及一个 service 元素,此元素可把若干个 web services 的定义组合在一个单一的 WSDL 文档中。2.1.WSDL文档实例 欢迎光临DIY部落,点击这里查看更多文章教程......参考地址:推荐工具软件如下: Omniopera—一图形用户界面的WSDL、XML和XSD器 Microsoft的SOAP Toolkit—一种工具包,其中包括根据WSDL定义创建COM接口的向导程序,还包括根据COM接口创建WSDL的向导程序 IBM的Web Services Toolkit—一种工具包,其中包括产生WSDL和SOAP部署说明的向导程序参考网址:http://iask.sina.com.cn/b/11632650.html

Java调用wsdl,怎么实现

java调用wsdl的步骤如下,主要是使用第三方框架:

步骤如下:

1.下载AXIS2类库,AXIS2是目前java调用webservice的一个主要方法(由于更新较频繁,请自行google该类库的网址)

2.由于是第三方webservice,直接引入AXIS2的包就可以用了,代码如下: 

import java.rmi.RemoteException;import javax.xml.rpc.ParameterMode;import javax.xml.rpc.ServiceException;import org.apache.axis.client.Call;import org.apache.axis.client.Service;import org.apache.axis.encoding.XMLType; public class webServiceTest {    public String invokeRemoteFuc() {        String endpoint = "迟点上个源码共大家参考!

eclipse解析wsdl文件 怎么获取wsdl信息

一个WSDL文档通常包含7个重要的元素,即types、import、message、portType、operation、binding、 service元素。 这些元素嵌套在definitions元素中, (1) Definitions是WSDL文档的根元素。对应于这个类: org.eclipse.wst.wsdl.Definition 其他的对象都可以通过这个对象获得 (2) Types - 数据类型定义的容器,它使用某种类型系统(一般地使用XML Schema中的类型系统)。 (3) Message - 通信消息的数据结构的抽象类型化定义。使用Types所定义的类型来定义整个消息的数据结构。 (4) PortType - 对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持。 (子节点) Operation - 对服务中所支持的操作的抽象描述,一般单个Operation描述了一个访问入口的请求/响应消息对。 (5) Binding - 特定端口类型的具体协议和数据格式规范的绑定。 (6) Service- 相关服务访问点的集合。 (子节点) Port - 定义为协议/数据格式绑定与具体Web访问地址组合的单个服务访问点。 下面是代码实例: import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import javax.wsdl.Message; import javax.wsdl.Part; import javax.wsdl.PortType; import javax.xml.namespace.QName; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; import org.eclipse.wst.wsdl.Definition; import org.eclipse.wst.wsdl.Types; import org.eclipse.wst.wsdl.internal.impl.PartImpl; import org.eclipse.wst.wsdl.internal.util.WSDLResourceFactoryImpl; import org.eclipse.wst.wsdl.util.WSDLResourceImpl; import org.eclipse.xsd.XSDElementDeclaration; import org.eclipse.xsd.XSDSchema; import org.eclipse.xsd.util.XSDResourceImpl; import org.junit.Test; import org.junit.Before; public class WSDLParserWithEclipse { Definition definition=null; String wsdlPathString="E:/HelloEclipse-EMF-WSDL-XSD/test.wsdl"; @Before public void setup(){ ResourceSet resourceSet = new ResourceSetImpl(); Resource.Factory.Registry registry = resourceSet.getResourceFactoryRegistry(); Map extensionToFactoryMap = registry.getExtensionToFactoryMap(); extensionToFactoryMap.put("wsdl", new WSDLResourceFactoryImpl()); File wsdlFile =new File(wsdlPathString); URI uri = URI.createFileURI(wsdlFile.getAbsolutePath()); // You can avoid this cast, but will have to cast anyway later to get the Definition out the resource contents WSDLResourceImpl wsdlResource = (WSDLResourceImpl) resourceSet.createResource(uri); try { wsdlResource.load(null); definition = wsdlResource.getDefinition(); }catch(Exception e){ e.printStackTrace(); } } @Test public void testTypes(){ Types types = definition.getETypes(); List schemas = types.getSchemas("http://www.xxxxx.com/problem"); XSDSchema schema = (XSDSchema) schemas.get(0); org.eclipse.xsd.util.XSDResourceImpl.serialize(System.out, schema.getElement()); } @Test public void testMessage(){ Map messages=definition.getMessages(); System.out.println("The message size is:"+messages.size()); Set setMessages=messages.keySet(); Iterator iteratorMessages=setMessages.iterator(); while(iteratorMessages.hasNext()){ QName key=(QName)iteratorMessages.next(); Message message=(Message)messages.get(key); //{http://www.xxxxx.com/problem}getKeysSoapIn //System.out.println("Message Name:"+message.getQName()); if(message.getQName().toString().indexOf("getKeysSoapIn")》0){ System.out.println("Message Name:"+message.getQName()); Map partsMap=message.getParts(); //org.eclipse.xsd.impl.XSDElementDeclarationImpl System.out.println("Message Part size for getKeysSoapIn message is:"+partsMap.size()); PartImpl part= (PartImpl)partsMap.get("problem"); XSDElementDeclaration xsdElementDeclaration=part.getElementDeclaration(); XSDResourceImpl.serialize(System.out, xsdElementDeclaration.getElement()); } } } @Test public void testPortType(){ Map portTypes=definition.getPortTypes(); System.out.println("Port Type size:"+portTypes.size()); if(portTypes!=null&&portTypes.size()》0){ Set set=portTypes.keySet(); Iterator iterator=set.iterator(); while(iterator.hasNext()){ QName object=(QName)iterator.next(); PortType portType=(PortType)portTypes.get(object); System.out.println("Port Type name:"+portType.getQName()); org.eclipse.xsd.util.XSDResourceImpl.serialize(System.out, portType.getDocumentationElement()); } } } }

关于wsdl和什么是wsdl的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

什么是wsdl?Java调用wsdl,怎么实现

本文编辑:admin
: wsdl,

更多文章:


导航一体机十大排名榜(哪种汽车导航一体机好)

导航一体机十大排名榜(哪种汽车导航一体机好)

本文目录哪种汽车导航一体机好导航一体机哪个品牌好哪种汽车导航一体机好您好,个人推荐有条件还是升级原厂高配的导航一体机,因为原厂的机头,对车不管是硬件,还是软件,特别是音质是最好的,升级副厂的一体机的话普遍做的音质差些,收音机跟原厂根本没法比

2024年5月17日 19:36

天语手表是正规牌子吗(天语手表是正规牌子吗)

天语手表是正规牌子吗(天语手表是正规牌子吗)

本文目录天语手表是正规牌子吗天宇数码智能手表怎么样天语watch3智能手表和华为哪个好京崎和天语手表哪个好天语watchx智能手表怎么样请问X宝有个卖手表的北京天语 请问谁去那买过手表可信吗因为他那卖的IW371447才三万七比专精工手表怎

2023年7月4日 05:00

小米2卖多少钱(现在小米2还能卖多少钱)

小米2卖多少钱(现在小米2还能卖多少钱)

本文目录现在小米2还能卖多少钱现在小米2要多少钱了几百元能买到吗二手小米2法律规定现在最多能卖多少钱小米2现在值多少钱小米2二手能卖多少小米2现在大约值多少钱现在小米2还能卖多少钱你好!小米2目前报价1999!配置如下~A网络类型单卡双模外

2023年11月17日 13:35

iphone3gs中国(从美国带回的iphone 3GS能在中国用吗还是需要什么程序才能用)

iphone3gs中国(从美国带回的iphone 3GS能在中国用吗还是需要什么程序才能用)

本文目录从美国带回的iphone 3GS能在中国用吗还是需要什么程序才能用苹果手机是哪一年到中国的iPhone3GS可以用中国移动3G卡吗怎样用Iphone 3gs 在中国能使么美国买的Iphone 3GS是不是中国制造的为什么iphone

2023年9月4日 09:00

2012年的索尼笔记本值多少钱(13年索尼SVE1511SBC笔记本二手的现在值多点钱)

2012年的索尼笔记本值多少钱(13年索尼SVE1511SBC笔记本二手的现在值多点钱)

本文目录13年索尼SVE1511SBC笔记本二手的现在值多点钱2012年买的索尼笔记本电脑当时买了六千多,现在想转手,大概能卖多少钱索尼a23012年买的,现在能卖多少钱13年索尼SVE1511SBC笔记本二手的现在值多点钱索尼SVE151

2024年1月3日 00:35

怎么验证金士顿u盘真假(金士顿U盘正品如何鉴别)

怎么验证金士顿u盘真假(金士顿U盘正品如何鉴别)

本文目录金士顿U盘正品如何鉴别怎么鉴别u盘是否正版,kingston的!怎样识别金士顿U盘的真假呢刚刚网购一个金士顿U盘,如何简单鉴别其真伪怎样识别金士顿U盘的真假呢 识别金士顿U盘的真假方法简述金士顿U盘正品如何鉴别金士顿u盘真假1、金士

2024年2月15日 16:15

华为笔记本客服在线咨询(华为电脑客服维修电话人工服务)

华为笔记本客服在线咨询(华为电脑客服维修电话人工服务)

本文目录华为电脑客服维修电话人工服务华为电脑售后服务有没有联系电话华为客服电话24小时人工服务电脑充电开不了机华为笔记本售后电话是多少华为电脑客服维修电话人工服务华为应用市场连接不上网络是因为华为应用市场app被禁止使用网络了。解决步骤如下

2023年10月2日 22:55

mg6280打印机(佳能mg6280打印机怎么取出墨车)

mg6280打印机(佳能mg6280打印机怎么取出墨车)

本文目录佳能mg6280打印机怎么取出墨车佳能mg6280连供墨盒6色怎么安装佳能MG6280如何连接安卓手机,有什么软件吗佳能mg6280打印机怎么使用打印照片佳能MG6280打印机打出来的照片色差特别大,颜色很暗如何让佳能mg6280打

2024年5月13日 04:15

格兰仕微波炉光波组合键用法(格兰仕微波炉的光波组合怎么用)

格兰仕微波炉光波组合键用法(格兰仕微波炉的光波组合怎么用)

本文目录格兰仕微波炉的光波组合怎么用格兰仕微波炉光波怎么使用方法格兰仕微波炉光波组合怎么使用 格兰仕微波炉光波组合如何使用格兰仕微波炉光波组合怎么使用格兰仕微波炉光波组合如何使用格兰仕微波炉的光波组合怎么用摘要格兰仕微波炉光波组合怎么用,烧

2024年1月23日 21:25

三角牌电压力锅质量怎么样(我买的九阳压力锅用的不到二年,坏了四次,怎么解释)

三角牌电压力锅质量怎么样(我买的九阳压力锅用的不到二年,坏了四次,怎么解释)

本文目录我买的九阳压力锅用的不到二年,坏了四次,怎么解释老式三角牌高压锅使用寿命三角牌铝压力锅好还是双喜铝压力锅好我买的九阳压力锅用的不到二年,坏了四次,怎么解释你买的九阳压力锅用不到两年就坏了四次,怎么解释这个还真的不好解释。首先九阳是一

2024年5月17日 05:44

三星翻盖手机铃声(三星翻盖手机最新款如何设置好听的铃声)

三星翻盖手机铃声(三星翻盖手机最新款如何设置好听的铃声)

本文目录三星翻盖手机最新款如何设置好听的铃声三星翻盖手机铃声开机关机就没了怎么回事有一款三星翻盖手机自带一种有鸟叫声的铃声 那铃声叫什么三星F619手机翻盖铃声在哪里设置三星翻盖手机最新款如何设置好听的铃声方法如下:1、在手机设置菜单中点击

2024年1月20日 06:35

近期文章

本站热文

电脑包尺寸对照表(电脑包要多大)
2024-05-17 21:01:03 浏览:3687
e10000(皖E10000是什么车)
2024-05-03 20:05:38 浏览:3489
ati radeon hd 5650(电脑的显卡是ATI Mobility Radeon HD 5650 (MADION PRO) ( 1 GB ) 这个显卡)
2024-05-11 17:46:52 浏览:3076
华为mate20pro版本区别(mate20pro有必要买ud版吗)
2024-05-12 23:51:36 浏览:2594
ipad买蜂窝版还是wifi版(ipad air 5买蜂窝好不好)
2023-05-05 18:45:09 浏览:2212
vivo y3配置参数(vivoy3参数是什么)
2024-05-17 13:47:47 浏览:2053
标签列表

热门搜索