SOAP消息的传递
上一篇说了SOAP消息的创建,那么创建好了的SOAP消息要怎么发送给服务端呢?
public class SoapTest {
    private String wsdlUri = "http://localhost:9999/ns?wsdl";
    private String ns = "http://lenve.server/";
    @Test
    public void test3() {
        try {
            // 1.创建服务Service
            URL url = new URL(wsdlUri);
            QName sname = new QName(ns, "MyServerImplService");
            Service service = Service.create(url, sname);
            // 2.创建Dispatch
            Dispatch<SOAPMessage> dispatch = service.createDispatch(new QName(ns,
                    "MyServerImplPort"), SOAPMessage.class, Service.Mode.MESSAGE);
            //3.创建SOAPMessage
            SOAPMessage msg = MessageFactory.newInstance().createMessage();
            SOAPBody body = msg.getSOAPPart().getEnvelope().getBody();
            //4.创建QName来指定消息中传递的数据
            QName ename = new QName(ns,"add","ns");
            SOAPBodyElement ele = body.addBodyElement(ename);
            ele.addChildElement("a").setValue("3");
            ele.addChildElement("b").setValue("6");
            //5.通过Dispatch传递消息,同时收到响应消息
            SOAPMessage response = dispatch.invoke(msg);
            response.writeTo(System.out);
            Document doc = response.getSOAPPart().getEnvelope().getBody().extractContentAsDocument();
            String str = doc.getElementsByTagName("addResult").item(0).getTextContent();
            System.out.println();
            System.out.println(str);
        } catch (SOAPException | IOException e) {
            e.printStackTrace();
        }
    }
}
客户端输出:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><S:Body><ns2:addResponse xmlns:ns2="http://lenve.server/"><addResult>9</addResult></ns2:addResponse></S:Body></S:Envelope>
9
成功调用了服务端程序。代码中先定义了两个变量,第一个是地址,这个不用多解释,第二个是命名空间,这是从地址所表示的页面中得到的。,在创建dispatch是还用到了MyServerImplPort,这个也是从文档中获得,在文档的结尾。 
。
SOAP消息的传递的更多相关文章
- SOAP消息创建
		
看了SOAP消息分析之后,大家对soap消息应该有了一个初步的认识,那么怎样自己编写一个soap消息呢? 先来创建一个简单的soap消息: @Test public void test1(){ try ...
 - webservice05#soap消息
		
1, SOAPMessage结构图 2, SOAP消息的创建 1>前面的一个简单WebService 服务 package com.yangw.soap.service; import jav ...
 - webservice系统学习笔记6-使用soap的header传递消息
		
1.显示的使用soap的header传递消息(不推荐使用,会破坏正常的代码结构,推荐使用handler处理) @WebResult(name="deleteResult") pub ...
 - 如何用Apache TCPMon来截获SOAP消息
		
在WebService服务器和客户机之间会传递SOAP消息,有时我们需要得到这些消息以便调试,而Apache的TCPMon可以帮助我们做到这一点. TCPMon的下载地址在http://ws.apa ...
 - JAX-WS创建和处理SOAP消息
		
JAX-WS规范是一组XML web services的JAVA API,在 JAX-WS中,一个远程调用可以转换为一个基于XML的协议例如SOAP,在使用JAX-WS过程中,开发者不需要编写任何生成 ...
 - Web Service进阶(二)如何用Apache TCPMon来截获SOAP消息
		
注:以下是关于TCPMon的一些使用常识,如果不需要或是已经熟悉就不用往下看了. 在WebService服务器和客户机之间会传递SOAP消息,有时我们需要得到这些消息以便调试,而Apache的TCPM ...
 - webservice系统学习笔记5-手动构建/发送/解析SOAP消息
		
手动拼接SOAP消息调用webservice SOAP消息的组成: 1.创建需要发送的SOAP消息的XML(add方法为例子) /** * 创建访问add方法的SOAP消息的xml */ @Test ...
 - SOAP消息结构
		
邵盛松 2012-5-22 一 SOAP消息结构 SOAP消息包括以下元素 必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息,XML文件的顶层元素,代表该文件为SOAP消 ...
 - soap消息机制 讲解
		
SOAP(Simple Object Access Protocol,简单对象访问协议)作为一种信息交互协议在分布式应用中非常广泛,如WebService.在使用.Net开发WebService时候, ...
 
随机推荐
- 听同事讲 Bayesian statistics: Part 2 - Bayesian inference
			
听同事讲 Bayesian statistics: Part 2 - Bayesian inference 摘要:每天坐地铁上班是一件很辛苦的事,需要早起不说,如果早上开会又赶上地铁晚点,更是让人火烧 ...
 - matlab中 hold on 与hold off的用法
			
matlab中 hold on 与hold off的用法 hold on 是当前轴及图形保持而不被刷新,准备接受此后将绘制 hold off 使当前轴及图形不在具备被刷新的性质 hold on 和ho ...
 - SPRING IN ACTION 第4版笔记-第一章-002-DI介绍
			
一. 1.knight.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&qu ...
 - block的是发送信号的线程,又不是处理槽函数的线程
			
请问UI线程给子线程发信号,应该用哪种连接方式? 如果子线程正在执行一个函数,我发射信号去执行子线程的另一个函数,那么此时子线程到底会执行什么呢? 用信号量做的同步.第一把信号槽的事件丢到线程的事件队 ...
 - 备份及还原Xcode的模拟器
			
http://blog.csdn.net/it_magician/article/details/8749876 每次更新或者重装Xcode之后,最麻烦的莫过于各个模拟器的安装了,因为下载速度实在让人 ...
 - HDU-2521                                       反素数
			
反素数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
 - HTML5与CSS3权威指南.pdf2
			
第三章 HTML5的结构 article元素更强调独立性,section元素强调分段,div元素强调css的套用,aretcle元素和section元素在核实的情况下可以调换 nav元素用作页面导航的 ...
 - Tsinsen A1505. 树(张闻涛) 倍增LCA,可持久化线段树,DFS序
			
题目:http://www.tsinsen.com/A1505 A1505. 树(张闻涛) 时间限制:1.0s 内存限制:512.0MB 总提交次数:196 AC次数:65 平均分: ...
 - NOI2007 货币兑换
			
[问题描述] 小 Y最近在一家金券交易所工作.该金券交易所只发行交易两种金券:A纪念券(以下简称A券)和B纪念券(以下简称B券).每个持有金券的顾客都有一个自己的 帐户.金券的数目可以是一个实数.每天 ...
 - Android应用开发学习之Selector
			
作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 本文我们来看一个通过selector动态改变ImageButton背景图片的例子,下图是该程序的运行效果: 该程序中 ...