`
zhaobing315
  • 浏览: 230114 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

无法理解 SOAP 头

 
阅读更多

问题描述:

      java客户端调用.net发布的web service(需要soap头验证)时发生无法理解SOAP头的错误。

 

重现步骤:

     1.用eclipse自带的web service client生成工具根据wsdl生成客户端(利用axis创建)。

     2.在java中调用web service接口。

wsdl文档头消息描述

 

<s:complexType name="MySoapHeader">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="UserName" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="PassWord" type="s:string"/>
</s:sequence>
<s:anyAttribute/>
</s:complexType>

 

报错信息:无法理解SOAP头。

 

问题原因:axis生成的客户端代码一般是不加soap消息头的,这个需要我们手动添加。

 

解决方法:

      给***SoapStub.java的protected org.apache.axis.client.Call createCall()方法添加如下代码

 

    protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException {
        try {
            org.apache.axis.client.Call _call = super._createCall();
            
            SOAPHeaderElement head = new SOAPHeaderElement(new PrefixedQName(new javax.xml.namespace.QName("命名空间", "MySoapHeader")));
            head.setActor(null);
            try{
            head.addChildElement("UserName").addTextNode("用户名");
            head.addChildElement("PassWord").addTextNode("密码");
            head.setMustUnderstand(false);
            }catch(Exception e)
            {
            	System.out.println(" soapheader Exception == "); 
            	e.printStackTrace();
            }
            _call.addHeader(head);
            
            if (super.maintainSessionSet) {
                _call.setMaintainSession(super.maintainSession);
            }

 over!

分享到:
评论

相关推荐

    SOAP协议规范(中文版).doc

    该SOAP协议规范,不是很完整,此中文文档只是帮助理解,内容并不详细!具体请参照英文文档!此文档目录如下: 目录 1. SOAP简介 2 1.1 SOAP1.2基本内容 2 1.2 符号约定 3 1.3 SOAP消息举例 3 2. SOAP消息交换模型 4 ...

    手把手教你写天气预报

    手把手教你写天气预报,这个程序虽小,但是基本的东西都是具有的。另外,此文档由于做得倡促,在博客随便粘过来的。没有好好排版,如果看得不爽请到博客里看原文。

    soap协议规范.chm

    详细的介绍了 soap协议的格式,对webservice开发者来说,理解soap 协议有助了加深理解webservice的应用

    浅谈soap协议

    本文对 SOAP 作了一个初步介绍,给出几个简单示例;接着比较 CORBA,DCOM/COM 与 SOAP 的联系与区别;然后浅析 SOAP 简单的理解为 RPC+HTTP+XML 时的运行机制;最后展现 SOAP 的前景。

    基于Linux系统C语言自动创建SOAP计算器例子

    本案例详细描述如何通过gSOAP工具,将自定义的功能头文件,自动生成SOAP服务代码,并描述如何...通过提供C语言编程的SOAP实例,实现基于SOAP协议的远程服务端和计算器客户端的功能,帮助学习者快速理解SOAP编程方法。

    简单对象访问协议(SOAP)初级指南

    这篇文章带你全面回顾对象远程进程调用(ORPC)技术的历程,以帮助你理解SOAP技术的基础,以及它克服存在技术(如CORBA和DCOM)的许多缺陷的方法。随后讲述详细的SOAP编码规则,并把焦点放在SOAP是怎样映射到存在的...

    不同wsdl样式对应的soap消息格式

    通过示例说明document/literal、document/literal(wrapped)、rpc/encoded、rpc/literal样式的web服务对应的soap消息格式,对于理解webservice有很大好处,尤其是根据wsdl构造soap消息,非常有价值。

    对于soap理解

    很详细的soap知识了解,SOAP v1.2为在一个松散的、分布的环境中使用XML对等地交换结构化的和类型化的信息提供了一个简单且轻量级的机制。

    Understanding Web Services XML WSDL SOAP and UDDI

    理解WebServices xml wsdl SOAP和uddi的好东西,pdf

    Special.Edition.Using.SOAP

    介绍用Soap开发Web应用的教材!内容全面,能让你尽快了解和使用SOAP.全书仅用三章介绍理论,其余部分全部集中在示例代码和如何尽快开发SOAP程度时应该要注意的问题。虽然是英文的,但是理解起来并没有特别的困难。

    js-soap-client:JavaScript SOAP 客户端

    Javascript SOAP 客户端从分叉并由 gtathub 修改。改进解析异常已修复数组作为参数正确设置类型定义中的长度属性如果 wsdl 中未列出数组,也会从响应中解析它们理解来自 php webservice 的响应(例如 Magento) 兼容...

    rest风格webservice,服务端用的springmvc,客户端android,json传输,另附一个cxf的soap协议的wsdl服务端

    以前做java的初步理解了下android,为配合android实现所以实现了几个接口,此包是打包demo,包括3个项目,1个是安卓客户端,实现登录和手机归属地查询。实现了3个接口服务,1个接口服务端提供登录是用的传统...

    技巧:用JAX-RPC发送与接收SOAP消息

    北京在本技巧中,IBM开发人员RussellButek向我们介绍了JAX-RPC,这是一种JavaAPI,有了它,应用程序不需要理解SOAP消息传递协议的细节,就可以与Web服务通信。Web服务的基础之一是互操作性。意思是说Web服务相互之间...

    深入理解C#中的XML,完整扫描版

    《深入理解C#中的XML》主要讲述C#软件开发中的XML的功能,全书共10章,分别介绍了XML基础语法、应用文档对象模型、用XSLT转换XML文档、利用DTD和XSDSchema验证XML文档、XML文档的读取、ADO.NET的相关知识、....

    深入浅出gSOAP C++移植和开发

    读完此文,读者既可深入理解SOAP技术,又可学习整体软件设计和架构思维。本文档为作者原创,因此,庆祝了大量精力在学习gSOAP上,同时,由于SOAP作为ONVIF技术的核心,本文档也是ONVIF开发的不可多得的实战经验和...

    JavaWeb服务:构建与运行

    · 理解基于SOAP的和REST样式的服务的区别 · 编写、部署和使用基于SOAP的核心Java服务 · 理解Web服务描述语言(WSDL)服务契约 · 认识SOAP消息的结构 · 学习如何交付基于Java的RESTful Web服务和消耗商业RESTful...

    C语言整数加法的webservice服务端和客户端代码

    使用gsoap工具生产的简单整数加法,包括服务端和客户端,对于理解soap很有帮助

Global site tag (gtag.js) - Google Analytics