博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1.java soap api操作和发送soap消息
阅读量:6268 次
发布时间:2019-06-22

本文共 2845 字,大约阅读时间需要 9 分钟。

转自:https://blog.csdn.net/lbinzhang/article/details/84721359

1。

1 /**  2      * soap请求  3      *   4      * @return  5      * @throws Exception  6      */   7     public static String invokeMethod(Object data) throws Exception {   8         // 创建连接     9         SOAPConnectionFactory soapConnFactory = SOAPConnectionFactory.newInstance();  10         SOAPConnection soapConn = soapConnFactory.createConnection();  11         // 创建消息对象    12         MessageFactory messageFactory = MessageFactory.newInstance();  13         SOAPMessage soapMessage = messageFactory.createMessage();  14         // 创建soap消息主体  15         SOAPPart soapPart = soapMessage.getSOAPPart();  16         SOAPEnvelope soapEnvelope = soapPart.getEnvelope();  17         SOAPBody body = soapEnvelope.getBody();  18         // 根据要传给mule的参数,创建消息body内容  19          SOAPElement bodyElement =body.addChildElement(soapEnvelope.createName("amsPortal", "ns2875","http://tempuri.org"));  20          bodyElement.addChildElement("secret").addTextNode("true");  21          bodyElement.addChildElement("command").addTextNode("OracleCli");  22          SOAPElement argsElement = bodyElement.addChildElement("args");  23          argsElement.addChildElement("ConnStr").addTextNode("192.168.40.175:1521/orcl");  24          argsElement.addChildElement("User").addTextNode("mtis");  25          argsElement.addChildElement("Pass").addTextNode("mtis");  26          soapMessage.saveChanges();  27           28          //     soapMessage = saveSoapChage(data, soapEnvelope, body, soapMessage);  29          /*  30          * 实际的消息是使用 call()方法发送的,该方法接收消息本身和目的地作为参数,并返回第二个 SOAPMessage 作为响应。  31          * call方法的message对象为发送的soap报文,url为mule配置的inbound端口地址。  32          */    33         URL url = new URL("http://192.168.200.236/soap/soap_server_pro.php");  34         // 响应消息  35         SOAPMessage reply = soapConn.call(soapMessage, url);  36         // 创建soap消息转换对象  37         TransformerFactory transformerFactory = TransformerFactory.newInstance();  38         Transformer transformer = transformerFactory.newTransformer();  39         // 提取消息内容  40         Source sourceContent = reply.getSOAPPart().getContent();  41         //输出流  42         ByteArrayOutputStream out = new ByteArrayOutputStream();  43         StreamResult result = new StreamResult(out);  44         //sourceContent实现此接口的对象包含充当源输入(XML 源或转换指令)所需的信息  45         //result充当转换结果的持有者,可以为 XML、纯文本、HTML 或某些其他格式的标记  46         transformer.transform(sourceContent, result);  47         //返回结果  48         String xmlData = new String(out.toByteArray());  49         // xml解析  50         xmlData = parserXml(data, xmlData);  51         //输出到控制台  52         System.out.println(xmlData);  53         //关闭连接  54         soapConn.close();  55         return xmlData;  56     }

 

转载于:https://www.cnblogs.com/sharpest/p/7872693.html

你可能感兴趣的文章
软件测试(二)之 Failure, Error & Fault
查看>>
浅谈MVC3自定义分页
查看>>
.net中ashx文件有什么用?功能有那些,一般用在什么情况下?
查看>>
select、poll、epoll之间的区别总结[整理]【转】
查看>>
CSS基础知识(上)
查看>>
PHP中常见的面试题2(附答案)
查看>>
角色权限分配
查看>>
明小子动力上传拿webshell.zip
查看>>
ES6 Module export与import复合使用
查看>>
第三篇、image 设置圆角的几种方式
查看>>
关于Vs2010 C#使用DirectX的问题
查看>>
EPP(Eclipse PHP)语法高亮仿EditPlus配置
查看>>
OA账号架构权限的问题
查看>>
030——VUE中鼠标语义修饰符
查看>>
python编辑csv
查看>>
sql游标的使用与exec的两种用法
查看>>
数据结构
查看>>
78/90 Subsets --back tracking
查看>>
非托管资源的释放
查看>>
开篇寄语
查看>>