`
星夜的遐想
  • 浏览: 188898 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

WebServie中wsdl文件的定义

阅读更多

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>

 

分享到:
评论

相关推荐

    WebServie 加减乘除

    - 编写或自动生成WSDL文件,描述WebServie的接口、输入和输出参数。 - 将WSDL文件发布在Web Servie的部署位置,以便客户端发现和调用。 5. **客户端调用WebServie** - 客户端可以使用各种语言(如Java、C#、...

    maximo6-JAVA调用WEBSERVICE

    在本例中,我们需要访问http://10.68.48.11:88/podetailws.asmx?wsdl这个URL来获取WEBSERVICE的WSDL文件,并将其保存为`webservie.wsdl`。 2. **生成客户端代码**: 使用Apache Axis工具(或者在MAXIMO6环境下,...

    webservie开发技术

    1. 定义服务接口:创建WSDL文件,描述服务的操作、输入/输出消息类型以及服务的地址。 2. 实现服务:根据WSDL文件,使用编程语言(如Java的JAX-WS,.NET的ASMX或WCF)实现服务端逻辑。 3. 部署服务:将服务部署到...

    WebServie创建部署调用

    1. **定义服务接口**:Web服务的创建通常始于定义服务接口,这可以是WSDL(Web Services Description Language)文件。WSDL描述了服务的输入、输出、操作和地址,是服务消费者了解服务的重要文档。 2. **选择协议和...

    JAVA WebServie Client.docx

    2. **导入WSDL**:通过导入WSDL文件,可以自动生成客户端所需的接口和类,简化了与WebService交互的过程。 - 在Eclipse中,可以通过右键点击项目 -&gt; New -&gt; Other -&gt; Web -&gt; Web Service Client Project 来引导生成...

    测试调用webservice接口客户端所开发的接口示例

    - 创建服务代理:首先,我们需要获取服务的WSDL(Web Service Description Language)文件,该文件描述了服务的接口、消息格式和地址。Java的`wsimport`工具可以从WSDL文件生成客户端所需的类。 - 实例化服务代理...

    axis1.4 部署解析webservie

    我缺少activation.jar,mail.jar,xerces.jar这里在可选组件(optional components)中提示缺少xml-security包。从它提示的地址下载软件包后,解压缩后在lib文件夹下,将xalan.jar和xmlsec-1.2.1.jar复制到TOMCAT_HOME...

    webservice入门学习代码笔记

    2. **WSDL(Web Services Description Language)**:WSDL是一种XML格式,用于定义Web服务的接口,描述了服务的位置、可用操作以及如何调用这些操作。它提供了服务提供者和消费者之间的契约,使得服务消费者可以根据...

    WebService 最简单搭建 Demo

    在提供的压缩包中,“WebServie简单环境搭建(教学资料项目源代码视频与文档)”可能包含了以下内容: - **教学资料**:可能包括详细的步骤说明、概念解释和最佳实践。 - **项目源代码**:提供了一个简单的WebService...

    Eclipese中一个简单的WebService(有客户端)

    在这个例子中,文件`Eclipese中手动建立WebServie客户端.txt`可能包含了这些步骤的详细说明。 2. **导入生成的客户端类**:将生成的客户端代码添加到项目中,通常包括一个服务接口和一个实现类。 3. **调用Web服务**...

    MyEclipse开发WebService教程

    这里,我们使用了`@javax.jws.WebService`注解来定义服务的相关属性,如目标命名空间、服务名、端口名以及WSDL(Web Service Description Language)位置。创建的`HelloJaxwsDelegate`类就是服务端的代理类,它会...

    webservice实例 CXF的JAXWS和JAXRS实现 及JAXB标准接口实现带jar包

    它允许我们通过注解或者XML绑定配置文件来定义Java类和XML元素之间的关系。在Web服务中,JAXB通常用于序列化和反序列化Java对象到XML消息,简化了数据交换的过程。CXF集成了JAXB,使得在处理XML消息时,无需编写大量...

    webservice的完整示例demo

    2. 配置CXF:在SpringBoot的配置文件`application.properties`或`application.yml`中设置CXF的服务端点地址等参数。 3. 创建WebService接口和实现:定义服务接口,遵循SOAP规范,然后编写其实现类。 4. 注解配置:...

    WebService客户端调用WebService服务示例代码——java

    WebService客户端调用WebService服务示例代码,java代码,纯手工,包括直接httpClient直接发送Saop报文调用和利用wsimport -keep 生成...因涉及商务账户密码隐私,因此代码中的有些账号密码已修改,非正确,但代码可用

    动态调用webservice

    winfrom 程序调用 webServie 中方法,有两种方法 WebServCaller.cs /* *调用示例: * Hashtable ht = new Hashtable(); * ht.Add("str", "test"); * ht.Add("b", "true"); * XmlDocument xx = WebSvcCaller....

    mvn+spring+mybatis+java6ws

    在这个项目中,使用Java 6标准来实现WebService,这是一种基于WSDL(Web Service Description Language)和SOAP(Simple Object Access Protocol)协议的远程调用方式。WebService允许不同的系统之间通过HTTP协议...

    基于spring注解的cxf实现webservice

    在Spring配置文件中,我们需要配置CXF的Servlet或Jetty服务器来处理HTTP请求。同时,通过`jaxws:endpoint`元素来声明Web服务。如果使用Java配置,可以使用`JaxWsServerFactoryBean`。例如,XML配置可能如下所示: ...

    这是链接SOAP的所需要的jar包

    使用webservie所用到的jar包,方便使用webservice类

    WebServices基础培训视频与源码

    资源名称:WebServices基础培训视频与源码资源目录:【】1.WebService之AXIS即时发布【】10.WebService之创建自己ws站点进行调用操作【】11.WebService之...资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

Global site tag (gtag.js) - Google Analytics