`
zhaobing315
  • 浏览: 231966 次
  • 性别: 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!

分享到:
评论

相关推荐

    CXF 添加soap 头部信息.zip_CXF增加soap头验证_bluex8z_cxf_meltedkw7_soap信息头

    首先,我们需要理解SOAP头部的作用。SOAP头是SOAP消息的一个可选部分,它包含了除消息体之外的附加信息,如安全凭证、交易ID或者路由信息。在CXF中,我们可以利用Interceptors(拦截器)机制来处理这些头部信息。 1...

    php soap 头验证

    在IT行业中,SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在Web服务中交换结构化和类型化的信息。...通过理解如何在PHP中操作和验证这些头信息,开发者可以构建更加安全和健壮的SOAP应用。

    Web Services Soap头身份验证

    当我们谈论“Web服务SOAP头身份验证”时,我们指的是在SOAP消息中包含额外的头部信息来确认发送方的身份。 SOAP头是SOAP消息结构的一部分,它提供了扩展功能,如安全性、路由信息和事务处理。身份验证是这些功能中...

    实现隐式和显式 SOAP 消息头

    总结,理解和实现SOAP消息头,无论是隐式还是显式,对于开发和维护Web服务至关重要。通过源码解析和利用相关工具,我们可以更好地控制和处理SOAP通信过程中的各种信息。在实际开发中,确保消息头正确无误地传递和...

    如何查看java代码编写的soap请求报文头信息

    首先,理解SOAP消息的基本结构至关重要。一个SOAP消息通常包含三个主要部分:头部(Header)、体(Body)以及可选的SOAP-envelop元素。报文头信息存储在SOAP Header中,用于提供额外的处理指令或元数据。 在Java中...

    jax-rpc soap头扩展 客户端,服务端例子

    **JAX-RPC SOAP 头扩展:客户端与服务端实例详解** ...理解和掌握如何在客户端和服务端处理SOAP头,对于开发高质量的分布式系统至关重要。通过实例代码的学习,能更好地巩固这些知识,并将其应用到实际开发中。

    QtSoap源码 仅供学习参考

    这个源码包是为了学习和理解SOAP通信机制而提供的,特别是对于使用Qt开发跨平台应用程序的开发者来说,QtSoap提供了一个方便的工具。 首先,让我们深入了解一下SOAP。SOAP是一种轻量级的消息传递协议,它依赖于HTTP...

    soap-build生成Soap接口请求报文

    首先,让我们理解SOAP接口请求报文的构成。一个标准的SOAP报文包含三个主要部分:Envelope、Header和Body。Envelope定义了报文的结构,Header可以包含额外的处理信息,而Body则包含了实际的业务数据。在Java开发中,...

    Laravel开发-laravel-soap Soap 协议客户端

    而`laravel-soap`是Laravel的一个扩展包,专门用于处理SOAP(Simple Object Access Protocol)协议,这是一...通过理解SOAP协议的基本概念和`laravel-soap`的使用方式,开发者可以更好地实现跨系统通信和集成外部服务。

    Qt下实现WebServer的调用之qtsoap

    在Qt环境下,开发人员经常需要与各种网络服务进行交互,比如Web API或远程...通过理解并熟练运用qtsoap,你可以构建起与远程服务高效沟通的Qt应用,无论是数据同步、API调用还是其他基于SOAP的服务,都能得心应手。

    soap请求的工具

    在Web服务开发中,理解SOAP请求和响应的格式以及如何利用工具进行测试和调试至关重要。通过使用这款工具,您不仅可以确保接口的正确性,还可以提高开发效率,避免在生产环境中出现未预见的问题。对于那些需要频繁与...

    SOAP资料,介绍SOAP协议

    了解SOAP协议不仅有助于理解Web服务的工作原理,还能帮助开发者在需要构建跨平台、跨语言的应用时选择合适的通信方式。深入学习SOAP协议,包括其消息结构、错误处理机制以及与WSDL和UDDI的协同工作,对于提升Web服务...

    SoapToolkit30 安装包

    安装包"SoapToolkit30.EXE"包含了SOAP Toolkit 3.0的所有组件和资源,使得开发者无需深入理解SOAP或XML的底层细节就能快速构建Web服务。以下是对SOAP Toolkit 3.0核心知识点的详细解释: 1. **SOAP消息结构**:SOAP...

    C#调用使用java的带soaphead的webservice

    首先,我们需要理解SOAP Header的重要性。SOAP Header是SOAP消息的一部分,它提供了扩展SOAP消息功能的能力,例如身份验证、事务处理或路由信息。在调用Java Web服务时,尤其是当服务需要特定的头部信息时,我们必须...

    拼接soap,判断soap是否连接成功,返回接口的信息,解析soap报文,解析后的soap转成实体

    首先,我们需要理解SOAP的基本结构。一个基本的SOAP消息由三部分组成:Header、Body和Envelope。Header中通常包含身份验证或路由信息,而Body则包含实际的业务数据。Envelope是SOAP消息的顶级元素,定义了整个消息的...

    apache.soap...jar包,soap 调用webservice核心包

    `SoapEnvelope`类代表SOAP消息的结构,包含了SOAP头和SOAP主体。`SoapMessage`和`SoapPart`是处理整个SOAP消息的关键类,而`SoapAddress`和`SoapFault`则分别用于处理服务地址和错误信息。 接下来,`org.apache....

    手把手教你写天气预报

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

    SOAP示例,轻松学SOAP

    7. **Content-Type 和 Content-Length**: 这些HTTP头字段分别定义了消息的MIME类型(这里是`application/soap+xml`)和消息的长度。 8. **参数传递**:在SOAP中,参数通过XML元素的形式传递,如`&lt;m:StockName&gt;IBM...

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

    这个中文文档虽然不是完整的SOAP规范,但提供了SOAP的基本框架和概念,有助于初学者理解SOAP的工作原理。更详细的规范和实践指南可以从W3C或其他资源获取。为了深入理解和应用SOAP,建议参考官方的英文文档以获取最...

    java调用soap接口案例

    Java调用SOAP(Simple Object Access Protocol)接口是Web服务交互中的常见操作,SOAP是一种基于XML的协议,...在处理天气信息这样的案例中,理解SOAP协议和相关API的使用,将使你能够轻松地与各种Web服务进行交互。

Global site tag (gtag.js) - Google Analytics