1.java soap api操作和发送soap消息[通俗易懂]

1.java soap api操作和发送soap消息[通俗易懂]转自:https://blog.csdn.net/lbinzhang/article/details/847213591。

大家好,又见面了,我是你们的朋友全栈君。

转自: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://javaforall.net/154370.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 10个linux常用命令_shell常用的命令

    10个linux常用命令_shell常用的命令文章目录20个linux常用命令1.ls:列出文件list2.cd:切换目录changedirectory3.cp:复制copy4.mv:移动move5.rm:移除,删除remove6.mkdir:创建文件夹makedirectory7.rmdir:移除,删除文件夹removedirectory8.chown:更改所有者changeowner9.chmod:更改文件的权限模式changemode10.find:查找11.|:管道12.grep:按行查找并匹配13.tar:

    2022年10月3日
    4
  • 精华篇:数组指针

    精华篇:数组指针一.数组指针1.定义:数组指针,指的是数组名的指针,即数组首元素地址的指针。即是指向数组的指针。例:int(*p)[10];p即为指向数组的指针,又称数组指针。2.特性:…

    2022年7月3日
    31
  • 单纯形法和单纯形表_什么是初始单纯形表

    单纯形法和单纯形表_什么是初始单纯形表线性规划常用的方法是单纯形表法,下面用一个简单的例子告诉大家如何用最简单的方法求取目标函数Z值。用单纯形方法求解线性规划问题:首先引入松弛变量,把原问题化为标准形式:具体步骤如下:第1步,确定初始单纯形表第2步:判别检验所有的检验系数(1)如果所有的检验系数,则由最优性判定定理知,已获最优解,即此时的基本可行解就是最优解。(2)若检验系数…

    2025年7月2日
    5
  • idea插件(mybatis框架下mapper接口快速跳转对应xml文件)亲测好用「建议收藏」

    idea插件(mybatis框架下mapper接口快速跳转对应xml文件)亲测好用「建议收藏」我相信目前在绝大部分公司里,主要使用的框架是S(spring)S(springMVC)M(mybatis),其中mybatis总体架构是编写mapper接口,框架扫描其对应的mapper.xml文件,由于xml里面编写大量的sql语句,所以在平时调试中需要对其进行调试,但是xml文件并不能像java文件一样,能快速进行跳转,对查找对应xml文件带来巨大的不便。网友基础idea强大的插件系…

    2025年7月17日
    6
  • python怎么定义数组长度_python中如何定义数组

    python怎么定义数组长度_python中如何定义数组广告关闭腾讯云11.11云上盛惠,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!python返回数组(list)长度的方法array=printlen(array)…如何查找二维数组中有多少行和列?例如,input=(,,])`应显示为3行和2列…所以我在python中实现了一个块交换算法。我遵循的算法是这样的:初始化a=arr…

    2022年8月13日
    23
  • python安装pycryptodome_python代码如何转成c代码

    python安装pycryptodome_python代码如何转成c代码在windows下用一下开源工具就是悲催,如题python安装pycrypto在windows也是很麻烦。一般在官方网站下载:https://www.dlitz.net/software/pycrypto/然后使用命令就可以安装成功了:pythonsetup.pybuildpythonsetup.pyinstall但是在windows下会报错:Pythonerror:Unableto…

    2025年7月15日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号