`

wsdl中添加soap:header元素

    博客分类:
  • cxf
阅读更多

我们在开发webservice的时候,经常会看到有些生成的wsdl文件中包含了<soap:header>节点元素,那么怎样在wsdl

文件中添加<soap:header>节点元素。

 

我们知道开发webservice服务其实有两种方式cxf发布有两种方式,一种Object first,也就是普通的方式,还有一种是

WSDLfirst,就是你自己编写WSDL文档然后发布。如果需要在生成的wsdl文件中包含soap:header元素,那么我们只

能采用第二种方式来开发webservice服务。

 

我将采用的是http://liuwuhen.iteye.com/blog/1666189 该博客中所产生的wsdl文件的基础,进行soap:header元

 素。

 

具体实现的步骤如下:

 

1.声明元素。

 

<xsd:element name="header" type="tns:headertype"/>
          <xsd:complexType name="headertype">
     <xsd:sequence>
      <xsd:element name="spPassword" type="xsd:string" />
      <xsd:element name="spId" type="xsd:int" />
     </xsd:sequence>
</xsd:complexType>

 

我们可以这样理解,其实xsd:element就相当于我们一个类中所对应的属性, xsd:complexType 可以理解为属性所对应

 

类型。

 

2. 在message节点处引用该头部元素

 

<wsdl:message name="sayHello">
    <wsdl:part element="tns:sayHello" name="parameters"/>
    <wsdl:part element="tns:header" name="header_info"/>
</wsdl:message>

 

其中 element="tns:header"引用的是上面声明的元素。

 

3.在wsdl:binding中的wsdl:operation处添加<soap:header>元素

 

<wsdl:operation name="sayHello">
   <soap:operation soapAction="" style="document" />
   <wsdl:input name="sayHello">
      <soap:header message="tns:sayHello"
     part="header_info" use="literal" wsdl:required="true"/>
    <soap:body use="literal" parts="sayHello"/>
   </wsdl:input>
   <wsdl:output name="sayHelloResponse">
    <soap:body use="literal" />
   </wsdl:output>
  </wsdl:operation>

 

其中part引用是message部分声明的节点名称,use=literal表示的是编码的方式.

 

4.修改发布服务的cxf配置文件。

 

<jaxws:endpoint id="helloWorld" implementor="com.liuwuhen.cxf.IHelloWorldImpl"
  address="/sayHello" wsdlLocation="WEB-INF/HelloWorld.wsdl">

 

wsdlLocation :即指定wsdl文件所在的路径。

 

通上述的三个步骤即可完成wsdl文件中添加soap:header节点元素,应该很简单。

 

分享到:
评论

相关推荐

    SOAP:XML跨平台Web Service开发技术

    - **信封(Envelope)**:这是SOAP消息的最外层元素,用于标识该消息为SOAP消息。 - **头部(Header)**:可选部分,用于包含处理消息所需的信息,如认证、事务处理等。 - **主体(Body)**:必须部分,包含了实际...

    soap协议请求与分析.rar_ Soap_SOAP java_WSDL_java soap_soap

    SOAP(Simple Object ...总的来说,了解SOAP协议、如何在Java中实现SOAP请求以及解析WSDL文件是Web服务开发的关键技能。通过实践和学习这些知识点,开发者能够创建和消费跨平台的Web服务,实现不同系统的互操作性。

    wsdl标准写法(含header)

    在WSDL中,Header通常通过SOAP扩展(如wsdl:header)来描述,它们可以是可选的或强制的,并且可以关联到特定的操作。 对于包含Header的WSDL,开发者需要确保正确配置Header部分,以便服务能够识别和处理它们。这...

    Delphi的SOAP Header问题

    为了解决Delphi中SOAP Header的问题,可以采取以下步骤来自定义Header结构: 1. **定义新的Header类**:首先,需要定义一个新的类,该类继承自`TSOAPHeader`。在这个新类中,应该声明和实现所有必需的属性,如`...

    webservice(wsdl、soap)实例有demo

    在本实例中,我们将探讨三个关键概念:WSDL(Web Services Description Language)、SOAP(Simple Object Access Protocol)以及如何通过Demo来理解这些概念并实现接口。 **WSDL(Web Services Description ...

    实现隐式和显式 SOAP 消息头

    实际项目中,可能需要根据业务需求创建自定义的SOAP消息头,如添加安全认证、会话管理等。这通常涉及到对XML文档的解析和操作,以及与服务端交互的逻辑处理。 总结,理解和实现SOAP消息头,无论是隐式还是显式,...

    SOAP资料,介绍SOAP协议

    Header中的元素是可扩展的,可以包含自定义的头信息。它由`&lt;soap:Header&gt;`和`&lt;/soap:Header&gt;`包围。 3. **SOAP Body**:消息的主要内容,包含了实际的服务调用和响应。Body中的元素通常是一个单一的XML结构,代表了...

    SOAP编程

    SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在Web服务中交换结构化和类型化的信息。SOAP允许应用程序通过HTTP、SMTP等网络协议进行通信,使得不同平台上的软件能够相互通信。以下是对SOAP编程...

    SOAP 基础 教程

    本教程将深入探讨SOAP的基础知识,包括其工作原理、消息结构、WSDL规范以及如何创建和调用SOAP Web服务。 ### 1. SOAP工作原理 SOAP使用HTTP或HTTPS作为传输协议,确保了跨平台的兼容性和安全性。它通过XML格式...

    SOAP协议规范

    - **Envelope**:这是SOAP消息的根元素,定义了消息的边界,并指示接收者如何处理该消息。它通常包含`&lt;soap:Envelope&gt;`标签。 - **Header**:可选部分,用于传递与消息处理相关的附加信息,如认证、路由指令等。它...

    soap-bin-2.3.1.zip

    XML元素`&lt;soap:Envelope&gt;`、`&lt;soap:Header&gt;`和`&lt;soap:Body&gt;`是SOAP消息的基本结构。例如: ```xml &lt;soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope/"&gt; &lt;soap:Header /&gt; &lt;soap:Body&gt; ...

    Web Service学习笔记.doc

    以上的元素都在 SOAP 的命名空间 http://www.w3.org/2001/12/soap-envelope 中声明; SOAP 的语法规则: * SOAP 消息必须用 XML 来编码 * SOAP 消息必须使用 SOAP Envelope 命名空间 * SOAP 消息必须使用 SOAP ...

    SOAP消息和WSDL

    在提供的压缩包文件中,`05_soap`可能包含关于如何创建和发送SOAP消息的示例代码,`06_wsdl_client`和`05_soap_client`可能是SOAP客户端的实现,`06_wsdl`可能是一个或多个WSDL文档,用于描述服务接口。通过这些文件...

    客户端调用webservice方式一(soap请求)

    2. **设置SOAP Envelope和Header**:根据WebService的WSDL(Web Service Description Language)文档,确定SOAP Envelope的格式,并根据需求添加Header信息,如认证Token或SOAPAction。 3. **发送HTTP请求**:封装...

    SOAP基本和创建详解

    `&lt;soap:Header&gt;` 如果存在,它必须是 `Envelope` 的直接子元素。 3. **Body元素**:这是SOAP消息的核心,包含了实际的业务数据或服务调用。`&lt;soap:Body&gt;` 必须存在,而且它的所有子元素都是服务调用或响应的具体...

    一个soap例子,欢迎下载

    SOAP消息通常描述在Web服务描述语言(WSDL)中,用于定义服务接口、消息格式和绑定。 6. **SOAP与TCP/IP转换**: 在这个例子中,可能涉及到将SOAP消息包装在TCP/IP数据包中,以便直接通过TCP/IP进行通信,这通常...

    SOAP消息格式

    4. **Namespace(命名空间)**:SOAP消息中的元素通常会引用命名空间来避免元素名称冲突。这些命名空间通过`xmlns`属性定义。 例如,一个简单的SOAP请求可能如下所示: ```xml &lt;soap:Envelope xmlns:soap=...

    soap.rar_SOA_SOAP java_java soap_soap

    标题中的"soap.rar_SOA_SOAP_java_java_soap_soap"揭示了主要的主题是SOAP(简单对象访问协议)技术,它在服务导向架构(SOA)中扮演着关键角色,并与Java编程语言紧密关联。SOAP是一种基于XML的协议,用于在分布式...

    webservice工具,针对wsdl、soap进行测试的小软件

    WSDL文件通常包含以下几个关键元素: 1. **服务(Service)**:定义服务的端点,也就是客户端可以与之交互的实际网络地址。 2. **绑定(Binding)**:定义服务如何被访问,包括使用的协议(如HTTP、SOAP over HTTP...

Global site tag (gtag.js) - Google Analytics