我需要调用另外一个厂商的webservice接口,在soapUI工具中调用成功,请求格式如下:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.business.sms.star.com">
<soapenv:Header>
<USERNAME xmlns="NAMESPACE">me</VOD_USERNAME>
<PASSWORD xmlns="NAMESPACE">pass</VOD_PASSWORD>
<VERSION xmlns="NAMESPACE">1.5</VOD_VERSION>
</soapenv:Header>
<soapenv:Body>
...
</soapenv:Body>
</soapenv:Envelope>
想问一下,我用xfire框架如何将<soapenv:Header>里的内容发送给服务端?
我一开始用axis1,但调用后老出现错误:Premature end of file,后为改用了xfire框架。
<?xml version= '1.0 ' encoding= 'utf-8 '?>
<SOAP-ENV:Envelope xmlns:xsi= 'http://www.w3.org/2001/XMLSchema-instance '
xmlns:xsd= 'http://www.w3.org/2001/XMLSchema '
xmlns:SOAP-ENV= 'http://schemas.xmlsoap.org/soap/envelope/ '
xmlns:SOAP-ENC= 'http://schemas.xmlsoap.org/soap/encoding/ '>
<SOAP-ENV:Header>
<TransactionID xmlns= 'http://10.1.2.122/misc/dsmp.xsd '> 00110100037392 </TransactionID>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<SyncOrderRelationReq xmlns= 'http://10.1.2.122/misc/dsmp.xsd '>
<Version> 1.5.0 </Version>
<MsgType> SyncOrderRelationReq </MsgType>
<Send_Address>
<DeviceType> 0 </DeviceType>
<DeviceID> 0011 </DeviceID>
</Send_Address>
<Dest_Address>
<DeviceType> 400 </DeviceType>
<DeviceID> 0 </DeviceID>
</Dest_Address>
<FeeUser_ID>
<UserIDType> 2 </UserIDType>
<MSISDN> </MSISDN>
<PseudoCode> 00116000000286 </PseudoCode>
</FeeUser_ID>
<DestUser_ID>
<UserIDType> 2 </UserIDType>
<MSISDN> </MSISDN>
<PseudoCode> 00116000000286 </PseudoCode>
</DestUser_ID>
<LinkID> SP </LinkID>
<ActionID> 1 </ActionID>
<ActionReasonID> 1 </ActionReasonID>
<SPID> 900562 </SPID>
<SPServiceID> 04101040 </SPServiceID>
<AccessMode> 5 </AccessMode>
<FeatureStr> </FeatureStr>
</SyncOrderRelationReq>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
如何能够得到TransactionID 的值 00110100037392
SAXBuilder builder = new SAXBuilder();
Document doc = null;
StringReader sr = new StringReader(soaptext);
doc = builder.build(sr);
Namespace senv = Namespace.getNamespace( "SOAP-ENV ", "http://schemas.xmlsoap.org/soap/envelope/ ");
Namespace trns = Namespace.getNamespace( "http://10.1.2.122/misc/dsmp.xsd ");
Element root = doc.getRootElement();
Element head = root.getChild( "Header ", senv); // <SOAP-ENV:Header>
Element tid = head.getChild( "TransactionID ", trns); //TransactionID
tidtext = tid.getText();
分享到:
相关推荐
例如,SOAPFactory类用于创建SOAPMessage对象,MessageFactory类用于创建SOAPMessage对象,SOAPEnvelope类用于表示SOAP报文的根元素,SOAPHeader类用于表示SOAP报文的头部,SOAPBody类用于表示SOAP报文的主体等。...
最后,"将解析后的SOAP转成Java实体"意味着将解析出的数据映射到预先定义好的Java类实例上。例如,如果我们有类`YourResponseType`代表返回的数据结构,我们可以使用工具如Apache BeanUtils将XML节点值填充到这些...
1. SOAP(Simple Object Access Protocol):SOAP是一种基于XML的协议,用于在Web上交换结构化的和类型化的信息。它主要用于在不同应用程序之间进行远程过程调用(RPC)。SOAP消息封装在HTTP、SMTP等传输协议之上,...
【标题】"soap_to_rest_node:将SOAP转换为REST请求的项目"是一个旨在帮助开发者将传统的SOAP(简单对象访问协议)服务转换为更现代、更易于使用的REST(表述性状态转移)API的开源项目。该项目主要使用JavaScript...
本知识宝典将深入探讨Java基础知识、J2EE框架以及SOAP协议和Web服务技术,这些都是Java开发者面试时必须掌握的重要知识点。 首先,让我们从Java基础开始。Java是一种面向对象的语言,其设计哲学是“一次编写,到处...
接下来,我们转向SOAP(Simple Object Access Protocol),它是一种基于XML的协议,用于在Web服务中交换结构化和类型化的信息。SOAP消息通常包含三个主要部分:封装(Envelope)、头部(Header)和主体(Body)。...
SOAPUI是一款广泛使用的API测试工具,它支持SOAP和RESTful API的测试,包括模拟服务(Mock Service)功能,允许开发者在没有实际后端服务的情况下进行测试。然而,数据管理通常是一个挑战,特别是当需要大量测试数据...
SOAP(Simple Object Access Protocol)是一种基于XML的网络通信协议,用于在不同的软件应用程序之间交换信息。这个压缩包文件包含了与SOAP相关的多个Java库,这些库主要用于处理SOAP消息、XML解析和安全通信。以下...
本示例将深入探讨如何使用XMLHttpRequest直接访问Web服务以及通过SOAP(Simple Object Access Protocol)协议进行访问。 首先,让我们了解XMLHttpRequest的基本用法。创建一个XMLHttpRequest实例,然后设置其...
Apache SOAP是Java平台上的一个开源库,用于构建和消费基于SOAP(Simple Object Access Protocol)的Web服务。SOAP是一种XML格式的协议,它允许应用程序通过HTTP或其他传输协议进行远程调用,实现了分布式计算的能力...
在Microsoft Foundation Classes (MFC)框架下实现SOAP(Simple Object Access Protocol)服务端和客户端是一项技术密集型的任务,涉及到网络通信、XML解析以及MFC库的深入应用。SOAP是一种基于XML的协议,用于在...
QtSoap是基于Qt库的一个开源项目,用于在C++应用程序中实现SOAP(Simple Object Access Protocol)通信。SOAP是一种XML(eXtensible Markup Language)为基础的协议,它允许分布式系统中的对象通过网络交换数据和...
**SOAP协议规范详解** SOAP(Simple Object Access Protocol),即简单对象访问协议,是一种基于XML(Extensible Markup Language)的协议,用于在Web服务中传递结构化的和格式化的信息。SOAP允许应用程序通过HTTP...
一个SOAP消息通常由三部分组成:SOAP封装(SOAP Envelope)、SOAP头部(SOAP Header)和SOAP主体(SOAP Body)。SOAP消息是XML编码的,其中SOAP封装是必需的,SOAP头部和主体是可选的。在HTTP上使用SOAP时,SOAP请求...
SOAP接口服务器是基于SOAP协议构建的服务端应用,它接收SOAP请求,处理业务逻辑,并返回SOAP响应。通过这种方式,服务提供者可以暴露其功能,使得其他应用程序或系统能够通过标准的SOAP消息进行调用,无论它们使用的...
在开发基于SOAP(Simple Object Access Protocol)的服务时, Axis2 是一个常见的Java Web服务框架。在处理SOAP XML报文时,我们可能遇到一些规范性问题,例如节点首字母大小写的转换,以及节点命名空间前缀的添加与...
【标题】"Nohttp封装,soap封装"涉及的是在Android应用开发中,对网络请求库Nohttp的二次封装以及SOAP协议的实现。这两个技术都是移动应用中与服务器交互的重要手段。 【Nohttp封装】 Nohttp是一个轻量级的网络请求...
LabVEW通过soap上传信息给IIS服务器.
### SOAP白皮书核心知识点详解 #### 一、SOAP简介与功能 SOAP(Simple Object Access Protocol)是一种基于XML的信息交换协议,旨在为分布式系统提供一种标准化的远程过程调用(RPC)方式。它通过一系列规范定义了...
要实现节点首字母小写转大写的转换,我们需要遍历整个SOAP XML报文的OMElement树,并对每个节点进行处理。 以下是一个可能的Java代码实现步骤: 1. 创建一个递归方法,接收OMElement作为参数。 2. 在方法内部,...