WebService学习笔记(四) - SOAP消息格式与处理方式
2016-12-10 23:36
411 查看
一 soap消息的格式
二 soap消息的创建
java代码://1、创建消息工厂 MessageFactory factory = MessageFactory.newInstance(); //2、根据消息工厂创建SoapMessage SOAPMessage message = factory.createMessage(); //3、创建SOAPPart SOAPPart part = message.getSOAPPart(); //4、获取SOAPENvelope SOAPEnvelope envelope = part.getEnvelope(); //5、可以通过SoapEnvelope有效的获取相应的Body和Header等信息 SOAPBody body = envelope.getBody(); //6、根据Qname创建相应的节点(QName就是一个带有命名空间的节点) //<ns:add xmlns="http://java.zttc.edu.cn/webservice"/> QName qname = new QName("http://java.zttc.edu.cn/webservice", "add","ns"); //如果使用以下方式进行设置,会见<>转换为<和> //body.addBodyElement(qname).setValue("<a>1</a><b>2</b>"); SOAPBodyElement ele = body.addBodyElement(qname); ele.addChildElement("a").setValue("22"); ele.addChildElement("b").setValue("33"); //打印消息信息 message.writeTo(System.out);
三 消息传递
java代码://1、创建服务(Service) URL url = new URL(wsdlUrl); QName sname = new QName(ns,"MyServiceImplService"); Service service = Service.create(url,sname); //2、创建Dispatch Dispatch<SOAPMessage> dispatch = service.createDispatch(new QName(ns,"MyServiceImplPort"),SOAPMessage.class,Service.Mode.MESSAGE); //3、创建SOAPMessage SOAPMessage msg = MessageFactory.newInstance().createMessage(); SOAPEnvelope envelope = msg.getSOAPPart().getEnvelope(); SOAPBody body = envelope.getBody(); //4、创建QName来指定消息中传递数据 QName ename = new QName(ns,"add","nn");//<nn:add xmlns="xx"/> SOAPBodyElement ele = body.addBodyElement(ename); ele.addChildElement("a").setValue("22"); ele.addChildElement("b").setValue("33"); msg.writeTo(System.out); System.out.println("\n invoking....."); //5、通过Dispatch传递消息,会返回响应消息 SOAPMessage response = dispatch.invoke(msg); response.writeTo(System.out); System.out.println(); //6、响应消息处理,将响应的消息转换为dom对象 Document doc = response.getSOAPPart().getEnvelope().getBody().extractContentAsDocument(); String str = doc.getElementsByTagName("addResult").item(0).getTextContent(); System.out.println(str);
相关文章推荐
- soap消息传递和处理(基于Message和Payload的方式)
- SOAP消息的创建、传递和处理(MESSAGE方式)
- Webservice_13_Payload的方式传递SOAP的消息和处理 和 用SOAPMessage传递SOAP的消息和处理(无参数)
- C#中采用HTTP方式发送并处理SOAP格式的XML数据
- Webservice06---SOAP消息的传递和处理(基于Message方式)
- SOAP消息的传递和处理(PAYLOAD方式)
- soap消息的传递与处理(二)(基于payload的方式)
- matlab处理txt文本文件---数据格式要有规律性,否则要用编写特定方式进行读取
- Wpf和WinForm在窗体中处理用户自定义消息的不同方式
- 控制SOAP消息编码格式(SOAP Encoding Styles)
- Windows消息队列,UI线程,窗口以及消息处理方式总结
- JAX-WS创建和处理SOAP消息
- BCB-消息处理方式
- Windows消息队列,UI线程,窗口以及消息处理方式总结
- C# 消息处理机制及自定义过滤方式
- Windows消息队列,UI线程,窗口以及消息处理方式总结 .
- soap消息的分析与处理
- word内样式和格式变成“char char char char”的处理方式
- Windows消息队列 UI线程,窗口以及消息处理方式总结
- HTTP 通信, 三种方式XML 解析,并通过 Hander 实现异步消息处理