上一篇说了SOAP消息的创建,那么创建好了的SOAP消息要怎么发送给服务端呢?

  1. public class SoapTest {
  2. private String wsdlUri = "http://localhost:9999/ns?wsdl";
  3. private String ns = "http://lenve.server/";
  4. @Test
  5. public void test3() {
  6. try {
  7. // 1.创建服务Service
  8. URL url = new URL(wsdlUri);
  9. QName sname = new QName(ns, "MyServerImplService");
  10. Service service = Service.create(url, sname);
  11. // 2.创建Dispatch
  12. Dispatch<SOAPMessage> dispatch = service.createDispatch(new QName(ns,
  13. "MyServerImplPort"), SOAPMessage.class, Service.Mode.MESSAGE);
  14. //3.创建SOAPMessage
  15. SOAPMessage msg = MessageFactory.newInstance().createMessage();
  16. SOAPBody body = msg.getSOAPPart().getEnvelope().getBody();
  17. //4.创建QName来指定消息中传递的数据
  18. QName ename = new QName(ns,"add","ns");
  19. SOAPBodyElement ele = body.addBodyElement(ename);
  20. ele.addChildElement("a").setValue("3");
  21. ele.addChildElement("b").setValue("6");
  22. //5.通过Dispatch传递消息,同时收到响应消息
  23. SOAPMessage response = dispatch.invoke(msg);
  24. response.writeTo(System.out);
  25. Document doc = response.getSOAPPart().getEnvelope().getBody().extractContentAsDocument();
  26. String str = doc.getElementsByTagName("addResult").item(0).getTextContent();
  27. System.out.println();
  28. System.out.println(str);
  29. } catch (SOAPException | IOException e) {
  30. e.printStackTrace();
  31. }
  32. }
  33. }

客户端输出:

  1. <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>
  2. 9

成功调用了服务端程序。代码中先定义了两个变量,第一个是地址,这个不用多解释,第二个是命名空间,这是从地址所表示的页面中得到的。,在创建dispatch是还用到了MyServerImplPort,这个也是从文档中获得,在文档的结尾。

SOAP消息的传递的更多相关文章

  1. SOAP消息创建

    看了SOAP消息分析之后,大家对soap消息应该有了一个初步的认识,那么怎样自己编写一个soap消息呢? 先来创建一个简单的soap消息: @Test public void test1(){ try ...

  2. webservice05#soap消息

    1, SOAPMessage结构图 2, SOAP消息的创建 1>前面的一个简单WebService  服务 package com.yangw.soap.service; import jav ...

  3. webservice系统学习笔记6-使用soap的header传递消息

    1.显示的使用soap的header传递消息(不推荐使用,会破坏正常的代码结构,推荐使用handler处理) @WebResult(name="deleteResult") pub ...

  4. 如何用Apache TCPMon来截获SOAP消息

    在WebService服务器和客户机之间会传递SOAP消息,有时我们需要得到这些消息以便调试,而Apache的TCPMon可以帮助我们做到这一点.  TCPMon的下载地址在http://ws.apa ...

  5. JAX-WS创建和处理SOAP消息

    JAX-WS规范是一组XML web services的JAVA API,在 JAX-WS中,一个远程调用可以转换为一个基于XML的协议例如SOAP,在使用JAX-WS过程中,开发者不需要编写任何生成 ...

  6. Web Service进阶(二)如何用Apache TCPMon来截获SOAP消息

    注:以下是关于TCPMon的一些使用常识,如果不需要或是已经熟悉就不用往下看了. 在WebService服务器和客户机之间会传递SOAP消息,有时我们需要得到这些消息以便调试,而Apache的TCPM ...

  7. webservice系统学习笔记5-手动构建/发送/解析SOAP消息

    手动拼接SOAP消息调用webservice SOAP消息的组成: 1.创建需要发送的SOAP消息的XML(add方法为例子) /** * 创建访问add方法的SOAP消息的xml */ @Test ...

  8. SOAP消息结构

    邵盛松 2012-5-22 一 SOAP消息结构 SOAP消息包括以下元素 必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息,XML文件的顶层元素,代表该文件为SOAP消 ...

  9. soap消息机制 讲解

    SOAP(Simple Object Access Protocol,简单对象访问协议)作为一种信息交互协议在分布式应用中非常广泛,如WebService.在使用.Net开发WebService时候, ...

随机推荐

  1. backbone csdn

    http://blog.csdn.net/the_fire/article/details/7444067 blog.csdn.net/the_fire/article/details/7445448 ...

  2. Android开源项目发现---Layout 篇(持续更新)

    1. achartengine 强大的图标绘制工具 支持折线图.面积图.散点图.时间图.柱状图.条图.饼图.气泡图.圆环图.范围(高至低)条形图.拨号图/表.立方线图及各种图的结合 项目地址:http ...

  3. 带圆角的EditText

    转载请注明出处:http://blog.csdn.net/krislight/article 1.定义一个Drawable <?xml version="1.0" encod ...

  4. Web Development Terms

    I've come across lots of terms while learning web development. I'm feeling myself overwhelmed. Here ...

  5. windows 挂载windows 共享盘为本地磁盘

    我们在设置数据库自动备份时,为了数据的安全往往需要直接将数据备份到远程服务器上.在Linux可以通过NFS挂载来实现,在Windows平台可以直接通过net use+subst来实现将远程服务器的目录 ...

  6. TCP三次握手四次断开

    今天被问到三次握手了,当时只是脑子里有印象,却忘了一些SYN细节,手动微笑. 这么下去还怎么混...赶紧复习个... 三次握手是什么? TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双 ...

  7. ASP.NET之JSONHelper操作

    转自:http://www.cnblogs.com/PEPE/archive/2012/02/13/Pepe_Yu.html 之前说到了Ext.Net中GridPanel行取值的问题(Ext.Net开 ...

  8. JS小知识点----基本包装类型和引用类型

    var s1 = "some text"; s1.color = "red"; alert(s1.color);  //弹出 underfined var s1 ...

  9. objective-c中点语法的使用

    点语法的作用:提供一种访问属性的setter和getter的机制. 用法举例: 1.创建一个Person类,并声明属性.在person.h中. 2.实现一个init方法,并使用点语法等.在pers.m ...

  10. poj 1265 Area(Pick定理)

    Area Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5666   Accepted: 2533 Description ...