wsdl中添加soap:header元素

本文详细介绍了如何在WSDL文件中添加soap:header元素,主要通过四个步骤:1.声明头部元素及其复杂类型;2.在message节点引用头部元素;3.在wsdl:binding中的wsdl:operation处添加<soap:header>;4.修改CXF服务配置文件。这种方法适用于使用WSDL First方式开发的WebService服务。

我们在开发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节点元素,应该很简单。

 

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值