以下是开发webservice采用wsdl-first开发模式的一个wsdl例子(摘自CXF example),一个wsdl的编写必须由5小节元素构成:
<?xml version="1.0" encoding="utf-8"?>
<!--wsdl根元素definitions,同时使用xmlns:xxx对各命名空间进行缩写,方便引用-->
<wsdl:definitions name="SOAPBuilders-mime-cr-test" xmlns:types="http://cxf.apache.org/mime/types"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://cxf.apache.org/mime"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:xmime="http://www.w3.org/2005/05/xmlmime"
targetNamespace="http://cxf.apache.org/mime">
<!--第一节types元素:主要是使用schema对webservice组件的方法参数和返回值进行类型定义,类似于java的编写class-->
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://cxf.apache.org/mime/types"
xmlns:xmime="http://www.w3.org/2005/05/xmlmime" elementFormDefault="qualified">
<complexType name="ByteArrayType">
<sequence>
<element name="name" type="xsd:string" />
<element name="attachinfo" type="xsd:base64Binary"/>
</sequence>
</complexType>
<element name="testByteArray" type="types:ByteArrayType" />
<element name="testByteArrayResponse" type="types:ByteArrayType" />
<complexType name="DataHandlerType">
<sequence>
<element name="name" type="xsd:string" />
<element name="attachinfo" type="xsd:base64Binary"
xmime:expectedContentTypes="application/octet-stream"/>
</sequence>
</complexType>
<element name="testDataHandler" type="types:DataHandlerType" />
<element name="testDataHandlerResponse" type="types:DataHandlerType" />
</schema>
</wsdl:types>
<!--第二节message元素:主要是引用第一节的类型定义来创建webservice组件的方法参数和返回值元素,类似于java创建类的实例-->
<wsdl:message name="testByteArrayIn">
<wsdl:part name="data" element="types:testByteArray" />
</wsdl:message>
<wsdl:message name="testByteArrayOut">
<wsdl:part name="data" element="types:testByteArrayResponse" />
</wsdl:message>
<wsdl:message name="testDataHandlerIn">
<wsdl:part name="data" element="types:testDataHandler" />
</wsdl:message>
<wsdl:message name="testDataHandlerOut">
<wsdl:part name="data" element="types:testDataHandlerResponse" />
</wsdl:message>
<!--第三节portType元素:定义了webservice组件的方法名、参数和返回值元素-->
<wsdl:portType name="TestMtomPortType">
<wsdl:operation name="testByteArray">
<wsdl:input message="tns:testByteArrayIn" />
<wsdl:output message="tns:testByteArrayOut" />
</wsdl:operation>
<wsdl:operation name="testDataHandler">
<wsdl:input message="tns:testDataHandlerIn" />
<wsdl:output message="tns:testDataHandlerOut" />
</wsdl:operation>
</wsdl:portType>
<!--第四节bingding元素:定义了底层的传输协议是基于http还是别的协议,同时指定绑定模式是rpc/encode还是document/literal等模式-->
<wsdl:binding name="TestMtomBinding" type="tns:TestMtomPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="testByteArray">
<soap:operation soapAction="" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="testDataHandler">
<soap:operation soapAction="" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<!--第五节service元素,定义了发布的组件服务名和端口地址-->
<wsdl:service name="TestMtomService">
<wsdl:port name="TestMtomPort" binding="tns:TestMtomBinding">
<soap:address location="http://localhost:9000/mime-test" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
分享到:
相关推荐
**WSDL解析工具详解** WSDL(Web Services Description Language)是一种XML格式,用于定义网络服务的接口,描述了服务的位置、消息格式以及如何调用这些服务。WSDL解析工具是开发人员用来理解和操作WSDL文件的重要...
在本篇文章中,我们将深入探讨WSDL的基本结构、组成部分、以及如何解析一个WSDL文件。 1. **WSDL的基本结构** WSDL文件由一系列元素组成,包括服务、消息、操作、绑定、接口等。每个元素都有其特定的作用: - **...
**WSDL解析关键包** 在Java开发中,Web Service接口的描述通常采用WSDL(Web Service Description Language)文件。WSDL是一种XML格式的规范,用于定义网络服务的接口,包括服务的位置、操作、消息格式等关键信息。...
本项目“WSDL.rar”提供了一个C#编写的WSDL解析器,旨在帮助开发者更好地理解和操作WSDL文件。 首先,WSDL是一种XML文档,它详细描述了Web服务的接口,包括服务提供的操作、输入和输出消息的结构以及服务的位置。在...
芥末一个简单的WSDL解析器。安装Wasabi可通过,并可通过以下方式安装: $ gem install wasabi入门document = Wasabi . document File . read ( "some.wsdl" ) 获取SOAP端点: document . endpoint# => ...
总结,Java解析WSDL文档获取具体的方法与参数涉及的主要知识点包括:XML解析(DOM)、JAX-WS框架、`javax.xml.ws.Service`类的使用,以及如何基于WSDL生成服务客户端代码。理解这些概念,将有助于开发和消费Web服务...
6. **错误处理**: 处理可能抛出的异常,例如`javax.xml.ws.WebServiceException`,这可能表示网络问题或WSDL解析错误。 除了JAX-WS,还可以使用Apache CXF或 Axis2等其他Java Web服务框架来解析和使用WSDL。这些...
NULL 博文链接:https://hongyegu.iteye.com/blog/283970
1. **获取WSDL定义**:这通常涉及到一个后端代理或者使用支持WSDL解析的库。例如,`Zepo SOAP`库允许你提供WSDL URL,然后解析并构建相应的SOAP服务客户端。 2. **创建SOAP客户端**:一旦WSDL被解析,你可以创建一...
WSDL4J是一个Java库,专门用于解析和操作Web服务描述语言(WSDL)文件。WSDL是一种XML格式,用于定义网络服务的接口,包括其输入、输出、操作和服务绑定等信息。理解WSDL4J的工作原理和使用方法对于开发和消费基于...
一个用wsdl4j.jar,ws-commons-java5-1.0.1.jar,XmlSchema-1.3.2.jar完全解析wsdl的例子, 本例子原本是xcalia studio中的一个模块,拿来和初次接触的人参考,因为我走了很多弯路,希望别人能少走。
**描述分析:** 描述中提到,这个压缩包包含了wsdl4j的源码,目的是供学习者深入理解WSDL解析的原理。由于可能涉及到某些监管问题,建议国内开发者参考这些源码,尝试自研WSDL解析工具,以便在国内环境下更好地使用...
这通常涉及模拟调用、使用WSDL解析器检查结构,或者直接部署到服务器进行实际测试。 10. **最佳实践**:在使用WSDL生成工具时,应遵循良好的设计原则,如保持接口清晰、避免过于复杂的类型定义,以及合理使用命名...
这个过程通常涉及到SOAP(Simple Object Access Protocol)库,如Apache CXF或 Axis2,这些库能将WSDL解析并生成Java代码。 在Eclipse中,导入生成的Java包后,开发者就可以在Java项目中直接调用ONVIF服务,实现对...
在实际应用中,开发者通常会使用WSDL解析库(如Java的JAX-WS或.NET的WCF)来生成客户端代理类,这些类可以直接调用ONVIF服务,简化编程工作。同时,理解WSDL文件结构也有助于排查通信问题,确保设备能够正确地遵循...
总结,Java解析WSDL文档获取方法与参数涉及到的技术点包括:了解WSDL的基本概念,使用Apache CXF或其他类似库,加载和解析WSDL文档,获取服务、端点、操作和消息信息,最后可能还需要生成Java客户端代码以便于调用...
1. **WSDL解析**:WSDL4J能够解析WSDL文件,将其转换为内存中的对象模型,使开发者可以方便地访问和操作WSDL元素,如服务、端点、消息、绑定、操作等。 2. **WSDL创建与修改**:除了解析,WSDL4J还支持动态创建和...
7. ** wsdlpull **:这是一个轻量级的、高性能的WSDL解析库,适用于C++开发者,可以快速地解析和执行WSDL服务。 8. ** SoapClient(PHP)**:PHP内置的SoapClient类提供了对WSDL文件的直接支持,能够动态生成与WSDL...
Java解析WSDL(Web Service Description Language)文档是一个关键任务,特别是在开发基于Web服务的应用程序时。WSDL是一种XML格式,用于定义服务接口、操作、消息结构以及如何通过网络调用这些服务。本示例将深入...
如果在调用Web服务时遇到问题,检查HTTP通信错误、WSDL解析错误或者服务端返回的错误信息是解决问题的关键。 总的来说,Axis2 1.6.2提供了一种简洁的方式,帮助开发者快速地从WSDL生成客户端代码,从而简化Web服务...