`

转soap

阅读更多
我需要调用另外一个厂商的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();

分享到:
评论

相关推荐

    JAVA输出soap报文[参考].pdf

    例如,SOAPFactory类用于创建SOAPMessage对象,MessageFactory类用于创建SOAPMessage对象,SOAPEnvelope类用于表示SOAP报文的根元素,SOAPHeader类用于表示SOAP报文的头部,SOAPBody类用于表示SOAP报文的主体等。...

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

    最后,"将解析后的SOAP转成Java实体"意味着将解析出的数据映射到预先定义好的Java类实例上。例如,如果我们有类`YourResponseType`代表返回的数据结构,我们可以使用工具如Apache BeanUtils将XML节点值填充到这些...

    将基于SOAP的WCF服务转成RESTful设计

    1. SOAP(Simple Object Access Protocol):SOAP是一种基于XML的协议,用于在Web上交换结构化的和类型化的信息。它主要用于在不同应用程序之间进行远程过程调用(RPC)。SOAP消息封装在HTTP、SMTP等传输协议之上,...

    soap_to_rest_node:将SOAP转换为REST请求的项目

    【标题】"soap_to_rest_node:将SOAP转换为REST请求的项目"是一个旨在帮助开发者将传统的SOAP(简单对象访问协议)服务转换为更现代、更易于使用的REST(表述性状态转移)API的开源项目。该项目主要使用JavaScript...

    j2ee框架知识,soap协议webservice技术等

    本知识宝典将深入探讨Java基础知识、J2EE框架以及SOAP协议和Web服务技术,这些都是Java开发者面试时必须掌握的重要知识点。 首先,让我们从Java基础开始。Java是一种面向对象的语言,其设计哲学是“一次编写,到处...

    XML简介+SOAP+XML-RPC

    接下来,我们转向SOAP(Simple Object Access Protocol),它是一种基于XML的协议,用于在Web服务中交换结构化和类型化的信息。SOAP消息通常包含三个主要部分:封装(Envelope)、头部(Header)和主体(Body)。...

    excel转成soapui可识别的xml,直接mock api

    SOAPUI是一款广泛使用的API测试工具,它支持SOAP和RESTful API的测试,包括模拟服务(Mock Service)功能,允许开发者在没有实际后端服务的情况下进行测试。然而,数据管理通常是一个挑战,特别是当需要大量测试数据...

    soap部分jar

    SOAP(Simple Object Access Protocol)是一种基于XML的网络通信协议,用于在不同的软件应用程序之间交换信息。这个压缩包文件包含了与SOAP相关的多个Java库,这些库主要用于处理SOAP消息、XML解析和安全通信。以下...

    XmlHttpRequest对象直接访问与通过Soap协议访问WebSevice详解示例

    本示例将深入探讨如何使用XMLHttpRequest直接访问Web服务以及通过SOAP(Simple Object Access Protocol)协议进行访问。 首先,让我们了解XMLHttpRequest的基本用法。创建一个XMLHttpRequest实例,然后设置其...

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

    Apache SOAP是Java平台上的一个开源库,用于构建和消费基于SOAP(Simple Object Access Protocol)的Web服务。SOAP是一种XML格式的协议,它允许应用程序通过HTTP或其他传输协议进行远程调用,实现了分布式计算的能力...

    MFC下实现SOAP服务端和SOAP客户端

    在Microsoft Foundation Classes (MFC)框架下实现SOAP(Simple Object Access Protocol)服务端和客户端是一项技术密集型的任务,涉及到网络通信、XML解析以及MFC库的深入应用。SOAP是一种基于XML的协议,用于在...

    QtSoap源码 仅供学习参考

    QtSoap是基于Qt库的一个开源项目,用于在C++应用程序中实现SOAP(Simple Object Access Protocol)通信。SOAP是一种XML(eXtensible Markup Language)为基础的协议,它允许分布式系统中的对象通过网络交换数据和...

    SOAP协议规范——SOAP详解

    **SOAP协议规范详解** SOAP(Simple Object Access Protocol),即简单对象访问协议,是一种基于XML(Extensible Markup Language)的协议,用于在Web服务中传递结构化的和格式化的信息。SOAP允许应用程序通过HTTP...

    SOAP 的简要 描述

    一个SOAP消息通常由三部分组成:SOAP封装(SOAP Envelope)、SOAP头部(SOAP Header)和SOAP主体(SOAP Body)。SOAP消息是XML编码的,其中SOAP封装是必需的,SOAP头部和主体是可选的。在HTTP上使用SOAP时,SOAP请求...

    PHP-soap接口服务器

    SOAP接口服务器是基于SOAP协议构建的服务端应用,它接收SOAP请求,处理业务逻辑,并返回SOAP响应。通过这种方式,服务提供者可以暴露其功能,使得其他应用程序或系统能够通过标准的SOAP消息进行调用,无论它们使用的...

    Axis2 SOAP XML报文节点首字母小写转大写,节点命名空间前缀添加与剔除(JAVA)

    在开发基于SOAP(Simple Object Access Protocol)的服务时, Axis2 是一个常见的Java Web服务框架。在处理SOAP XML报文时,我们可能遇到一些规范性问题,例如节点首字母大小写的转换,以及节点命名空间前缀的添加与...

    Nohttp封装,soap封装

    【标题】"Nohttp封装,soap封装"涉及的是在Android应用开发中,对网络请求库Nohttp的二次封装以及SOAP协议的实现。这两个技术都是移动应用中与服务器交互的重要手段。 【Nohttp封装】 Nohttp是一个轻量级的网络请求...

    LabVIEW通过soap上传信息给IIS服务器

    LabVEW通过soap上传信息给IIS服务器.

    soap白皮书 TXT格式

    ### SOAP白皮书核心知识点详解 #### 一、SOAP简介与功能 SOAP(Simple Object Access Protocol)是一种基于XML的信息交换协议,旨在为分布式系统提供一种标准化的远程过程调用(RPC)方式。它通过一系列规范定义了...

    Axis2的OMElement SOAP XML报文节点首字母小写转大写(注意,是节点,不是节点元素的值) java

    要实现节点首字母小写转大写的转换,我们需要遍历整个SOAP XML报文的OMElement树,并对每个节点进行处理。 以下是一个可能的Java代码实现步骤: 1. 创建一个递归方法,接收OMElement作为参数。 2. 在方法内部,...

Global site tag (gtag.js) - Google Analytics