WSDL(Web Services Description Language)即WEB服务描述语言,我们可以通过XML的格式定义了Java中方法的调用和SOAPMessage的对应关系,一般在开发中,我们都必须定义WSDL文件,作为规范,以便客户端和服务器达成一致,更加方便调用。
在WSDL文件中定义的几个重要元素分别是:
types(用来定义message的类型)
Message(定义Message的内容),
PortType(指定对应的接口),
binding(定义每个方法对于的Message),
service(定义服务类),
下面看下一个完整的WSDL文件的定义:
<?xml version="1.0" encoding="UTF-8" ?> <wsdl:definitions name="VoteImplService" targetNamespace="http://service.lyl.com/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://service.lyl.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!-- 定义消息类型 --> <wsdl:types> <xsd:schema targetNamespace="http://service.lyl.com/"> <xsd:element name="vote" type="tns:vote"></xsd:element> <xsd:element name="voteResponse" type="tns:voteResponse"></xsd:element> <xsd:complexType name="vote"> <xsd:sequence> <xsd:element name="uname" type="xsd:string"></xsd:element> <xsd:element name="point" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="voteResponse"> <xsd:sequence> <xsd:element name="voteResult" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> <!-- 当我的定义的类型多个时候,可以单独把类型在一个schema文件中定义好然后引入进来 具体实现有两种方式:import 引入或者include引入(在schema中加入 targetNamespace="http://service.lyl.com/") --> <!-- <xsd:import namespace="http://service.lyl.com/" schemaLocation="example.xsd"></xsd:import> --> <!--<xsd:include schemaLocation="example.xsd"></xsd:include> --> </xsd:schema> </wsdl:types> <!-- 定义消息,每一个方法对于两个消息:一个输入(请求)消息,一个输出(响应)消息 在part元素中引入前面定义的元素,name总是parameters --> <wsdl:message name="voteResponse"> <wsdl:part element="tns:voteResponse" name="parameters" /> </wsdl:message> <wsdl:message name="vote"> <wsdl:part element="tns:vote" name="parameters" /> </wsdl:message> <wsdl:portType name="IVote"> <wsdl:operation name="vote"> <wsdl:input message="tns:vote" name="vote" /> <wsdl:output message="tns:voteResponse" name="voteResponse" /> </wsdl:operation> </wsdl:portType> <!-- 定义绑定 方法的传播方式,基于soapMessage方式--> <wsdl:binding name="VoteImplPortBinding" type="tns:IVote"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="vote"> <soap:operation soapAction="" style="document" /> <wsdl:input name="vote"> <soap:body use="literal" /> </wsdl:input> <wsdl:output name="voteResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <!-- 定义服务的名字和前面指定的名字一致--> <wsdl:service name="VoteImplService"> <wsdl:port binding="tns:VoteImplPortBinding" name="VoteImplPort"> <soap:address location="http://localhost:8080/TestCXF/services/Vote" /> </wsdl:port> </wsdl:service> </wsdl:definitions>
外部引入的example.xsd文件:
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://service.lyl.com/" xmlns:tns="http://service.lyl.com/" elementFormDefault="qualified"> <xsd:element name="vote" type="tns:vote"></xsd:element> <xsd:element name="voteResponse" type="tns:voteResponse"></xsd:element> <xsd:complexType name="vote"> <xsd:sequence> <xsd:element name="uname" type="xsd:string"></xsd:element> <xsd:element name="point" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="voteResponse"> <xsd:sequence> <xsd:element name="voteResult" type="xsd:string"></xsd:element> </xsd:sequence> </xsd:complexType> </xsd:schema>
相关推荐
- 编写或自动生成WSDL文件,描述WebServie的接口、输入和输出参数。 - 将WSDL文件发布在Web Servie的部署位置,以便客户端发现和调用。 5. **客户端调用WebServie** - 客户端可以使用各种语言(如Java、C#、...
在本例中,我们需要访问http://10.68.48.11:88/podetailws.asmx?wsdl这个URL来获取WEBSERVICE的WSDL文件,并将其保存为`webservie.wsdl`。 2. **生成客户端代码**: 使用Apache Axis工具(或者在MAXIMO6环境下,...
1. 定义服务接口:创建WSDL文件,描述服务的操作、输入/输出消息类型以及服务的地址。 2. 实现服务:根据WSDL文件,使用编程语言(如Java的JAX-WS,.NET的ASMX或WCF)实现服务端逻辑。 3. 部署服务:将服务部署到...
2. **发布服务**:将编译后的服务类和相关的WSDL文件上传到服务器。这通常涉及配置服务器的部署描述符(如web.xml)来暴露服务。 3. **测试服务**:部署后,可以通过服务URL(通常是`...
WSDL文件定义了服务的接口、操作、消息格式和地址等信息。 5. **设置项目调试属性**: 调试配置对于开发过程至关重要。需要在项目的调试属性中设置加载参数,确保在调试时启用WebService功能。在“调试方式”→...
2. **导入WSDL**:通过导入WSDL文件,可以自动生成客户端所需的接口和类,简化了与WebService交互的过程。 - 在Eclipse中,可以通过右键点击项目 -> New -> Other -> Web -> Web Service Client Project 来引导生成...
- 生成的Java客户端代码:由`wsimport`工具根据WSDL文件生成,包含了服务代理类和数据模型类。 - 测试类:包含测试方法,用于演示如何正确调用Web服务接口。 - 可能还有配置文件,如logging或连接池的配置。 6. ...
3. **生成WSDL**:由服务接口自动生成对应的WSDL文件,描述服务的接口、消息格式和调用方式。 4. **部署服务**:将服务部署到应用服务器,如Tomcat或Jetty,使其可以接收和响应来自客户端的请求。 5. **客户端调用...
3. **使用JAX-WS(Java API for XML Web Services)**:Eclipse内置了JAX-WS工具,可以自动为服务类生成WSDL文件,并提供部署描述符(web.xml)的配置。 4. **部署并运行**:将项目部署到Tomcat或其他Web服务器上,...
2. WebService基础:理解WebService的基本概念,如WSDL、UDDI等。 3. MyEclipse的使用:掌握在MyEclipse中创建Web服务工程的步骤。 4. Servlet配置:解析`web.xml`文件,理解XFireServlet的配置项。 5. 服务接口与...