问题描述:
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头部的作用。SOAP头是SOAP消息的一个可选部分,它包含了除消息体之外的附加信息,如安全凭证、交易ID或者路由信息。在CXF中,我们可以利用Interceptors(拦截器)机制来处理这些头部信息。 1...
在IT行业中,SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在Web服务中交换结构化和类型化的信息。...通过理解如何在PHP中操作和验证这些头信息,开发者可以构建更加安全和健壮的SOAP应用。
当我们谈论“Web服务SOAP头身份验证”时,我们指的是在SOAP消息中包含额外的头部信息来确认发送方的身份。 SOAP头是SOAP消息结构的一部分,它提供了扩展功能,如安全性、路由信息和事务处理。身份验证是这些功能中...
总结,理解和实现SOAP消息头,无论是隐式还是显式,对于开发和维护Web服务至关重要。通过源码解析和利用相关工具,我们可以更好地控制和处理SOAP通信过程中的各种信息。在实际开发中,确保消息头正确无误地传递和...
首先,理解SOAP消息的基本结构至关重要。一个SOAP消息通常包含三个主要部分:头部(Header)、体(Body)以及可选的SOAP-envelop元素。报文头信息存储在SOAP Header中,用于提供额外的处理指令或元数据。 在Java中...
**JAX-RPC SOAP 头扩展:客户端与服务端实例详解** ...理解和掌握如何在客户端和服务端处理SOAP头,对于开发高质量的分布式系统至关重要。通过实例代码的学习,能更好地巩固这些知识,并将其应用到实际开发中。
这个源码包是为了学习和理解SOAP通信机制而提供的,特别是对于使用Qt开发跨平台应用程序的开发者来说,QtSoap提供了一个方便的工具。 首先,让我们深入了解一下SOAP。SOAP是一种轻量级的消息传递协议,它依赖于HTTP...
首先,让我们理解SOAP接口请求报文的构成。一个标准的SOAP报文包含三个主要部分:Envelope、Header和Body。Envelope定义了报文的结构,Header可以包含额外的处理信息,而Body则包含了实际的业务数据。在Java开发中,...
而`laravel-soap`是Laravel的一个扩展包,专门用于处理SOAP(Simple Object Access Protocol)协议,这是一...通过理解SOAP协议的基本概念和`laravel-soap`的使用方式,开发者可以更好地实现跨系统通信和集成外部服务。
在Qt环境下,开发人员经常需要与各种网络服务进行交互,比如Web API或远程...通过理解并熟练运用qtsoap,你可以构建起与远程服务高效沟通的Qt应用,无论是数据同步、API调用还是其他基于SOAP的服务,都能得心应手。
在Web服务开发中,理解SOAP请求和响应的格式以及如何利用工具进行测试和调试至关重要。通过使用这款工具,您不仅可以确保接口的正确性,还可以提高开发效率,避免在生产环境中出现未预见的问题。对于那些需要频繁与...
了解SOAP协议不仅有助于理解Web服务的工作原理,还能帮助开发者在需要构建跨平台、跨语言的应用时选择合适的通信方式。深入学习SOAP协议,包括其消息结构、错误处理机制以及与WSDL和UDDI的协同工作,对于提升Web服务...
安装包"SoapToolkit30.EXE"包含了SOAP Toolkit 3.0的所有组件和资源,使得开发者无需深入理解SOAP或XML的底层细节就能快速构建Web服务。以下是对SOAP Toolkit 3.0核心知识点的详细解释: 1. **SOAP消息结构**:SOAP...
首先,我们需要理解SOAP Header的重要性。SOAP Header是SOAP消息的一部分,它提供了扩展SOAP消息功能的能力,例如身份验证、事务处理或路由信息。在调用Java Web服务时,尤其是当服务需要特定的头部信息时,我们必须...
首先,我们需要理解SOAP的基本结构。一个基本的SOAP消息由三部分组成:Header、Body和Envelope。Header中通常包含身份验证或路由信息,而Body则包含实际的业务数据。Envelope是SOAP消息的顶级元素,定义了整个消息的...
`SoapEnvelope`类代表SOAP消息的结构,包含了SOAP头和SOAP主体。`SoapMessage`和`SoapPart`是处理整个SOAP消息的关键类,而`SoapAddress`和`SoapFault`则分别用于处理服务地址和错误信息。 接下来,`org.apache....
手把手教你写天气预报,这个程序虽小,但是基本的东西都是具有的。另外,此文档由于做得倡促,在博客随便粘过来的。没有好好排版,如果看得不爽请到博客里看原文。
7. **Content-Type 和 Content-Length**: 这些HTTP头字段分别定义了消息的MIME类型(这里是`application/soap+xml`)和消息的长度。 8. **参数传递**:在SOAP中,参数通过XML元素的形式传递,如`<m:StockName>IBM...
这个中文文档虽然不是完整的SOAP规范,但提供了SOAP的基本框架和概念,有助于初学者理解SOAP的工作原理。更详细的规范和实践指南可以从W3C或其他资源获取。为了深入理解和应用SOAP,建议参考官方的英文文档以获取最...
Java调用SOAP(Simple Object Access Protocol)接口是Web服务交互中的常见操作,SOAP是一种基于XML的协议,...在处理天气信息这样的案例中,理解SOAP协议和相关API的使用,将使你能够轻松地与各种Web服务进行交互。