/**
* 可调整调用方法与命名空间的请求
* @param wsMethod 方法名
* @param bodyMessage json请求体.toString()
* @return JSONObject
*/
public static JSONObject sendMessage( String wsMethod, String bodyMessage) {
// 使用RPC方式调用WebService
RPCServiceClient serviceClient;
JSONObject reqBody = new JSONObject();

try {
serviceClient = new RPCServiceClient();

Options options = serviceClient.getOptions();
// 设置超时时间
options.setTimeOutInMilliSeconds(timeOut);
options.setProperty(HTTPConstants.SO_TIMEOUT, timeOut);
// 指定调用WebService的URL
EndpointReference targetAddr = new EndpointReference(wsUrl);
options.setTo(targetAddr);
options.setAction(wsMethod);
OMFactory fac = OMAbstractFactory.getOMFactory();
OMNamespace omNs = fac.createOMNamespace(nameSpace, wsMethod);
OMElement data = fac.createOMElement(wsMethod, omNs);

// 构造参数
OMElement inner = null;
//参数位置在XML中的data标签下
inner = fac.createOMElement("data", omNs);
inner.setText(bodyMessage);
data.addChild(inner);

//返回方法名
wsMethod = wsMethod+"Return";
//返回参数
String reMessage = null;
// 发起调用
logger.info("调用远程EAS接口,请求方法 : "+ wsMethod);
logger.info("调用远程EAS接口,请求参数 : "+ bodyMessage);
OMElement result = serviceClient.sendReceive(data);
Iterator iterator = result.getChildElements();
while (iterator.hasNext()) {
OMElement resultMessage = (OMElement) iterator.next();
if (resultMessage.getLocalName().equals(wsMethod)) {
//获取返回数据
reMessage = resultMessage.getText();
}
}
if (!reMessage.isEmpty()) {
reqBody = JSONObject.parseObject(reMessage);
if (!"ok".equals(reqBody.getString("status"))){
logger.info("调用远程EAS接口失败,返回错误信息 : "+ reqBody.get("status").toString());
return reqBody;
}
logger.info("调用远程EAS接口成功,返回信息 : "+ reqBody.toString());
}

} catch (AxisFault axisFault) {
axisFault.printStackTrace();
}

return reqBody;
}

RPC方式调用远程webservice接口的更多相关文章

  1. java webservices 以Axis1.4方式 调用sap webservice接口.

    1. 首先需要下载Axis1.4 jar包,这个必应搜索大把,下载下来后把jar包加入eclipse工程项目路径中即可. 2. 下载mail.jar和activation.jar 俩个包.下载地址:h ...

  2. java调用CXF WebService接口的两种方式

    通过http://localhost:7002/card/services/HelloWorld?wsdl访问到xml如下,说明接口写对了. 2.静态调用 // 创建WebService客户端代理工厂 ...

  3. java获取https网站证书,附带调用https:webservice接口

    一.java 获取https网站证书: 1.创建一个java工程,新建InstallCert类,将以下代码复制进去 package com; import java.io.BufferedReader ...

  4. Java 常调用的Webservice接口的方法

    WebService是基于Web的服务,WebService使用SOAP协议实现跨编程语言和跨操作系统平台,接收和响应外部系统的某种请求,从而实现远程调用.WebService采用HTTP协议传输数据 ...

  5. java调用 C# webservice接口

    java调用webservice接口方式有多种,本人很懒,测试一种满足我的需求,故为试验其他方法,仅供参考 一:工具 MyEclipse,C#编码发布的webservice接口 二:步骤 1.打开my ...

  6. PDA(Windows Mobile)调用远程WebService

    之前用模拟器测试过调用远程的WebService,发现总是提示"无法连接到远程服务器"的错误,不管是Windows Mobile6.0 还是6.5都是一样,按照网上的办法,改注册表 ...

  7. ASP.NET不通过添加web引用的方式调用web service接口

    尊重原著作:本文转载自http://bbs.csdn.net/topics/360223969 创建方法 //动态调用web服务 public static object InvokeWebSer(s ...

  8. Axis2 java调用.net webservice接口的问题(郑州就维)

    这是一个古老的问题,古老到从我若干年前遇到这样的问题就是一个解决之道:反复尝试.其实标准是什么,标准就是一个束缚,一种按既定规则的束缚,错点点,你的调用就可能不成功,不成功后你要花费大量的力气查找原因 ...

  9. Android程序使用SOAP调用远程WebService服务

    在现在的应用程序中.不可能不使用到网络,而且后台一定是有server作为支撑的. 现在最常见的调用方式有HTTP的GET .POST方式,返回JSON或者XML数据. 可是也有一种常见的形式就是调用W ...

  10. 大叔也说Xamarin~Android篇~调用远程API接口,发POST请求

    回到目录 Xamarin我们在上节已经教大家如何去部署它的环境了,今天来说一个实际的例子,使用android客户调用.net web api的一个接口,并发送POST请求,当服务端回到请求后做出响应, ...

随机推荐

  1. 全国分乡镇第七次人口普查数据shp数据库省市区县街道

    全国分乡镇第七次人口普查数据shp数据库省市区县街道 ==名称:全国第七次人口普查任意十个乡镇的乡镇界地图==数据说明:精确到乡镇级别.==数据:面数据,属性列表(乡镇名.乡镇代码,第六次人口普查分乡 ...

  2. node_modules/canvas npm ERR! command failed

    Installing packages. This might take a couple of minutes.Installing react, react-dom, and react-scri ...

  3. 代码and截图

    1.babassl ZUC算法代码: #include <stdio.h> #include <string.h> #include <openssl/crypto.h& ...

  4. js 表格分页,ajax请求后台数据前台分页

    $(function(){ var url="后台给的地址"; var shuju=document.getElementById("shuju"); cons ...

  5. Python获取当前在线设备ip和mac地址

    获取局域网所在的网段 with os.popen("ipconfig /all") as res: for line in res: line = line.strip() if ...

  6. 暑假学习6 hdfs shell命令

    命令行操作:cli Hadoop的命令shell : Hadoop fs -ls file:                   操作 本地的文件系统 hadoop fs -ls hdfs://nod ...

  7. 【Python】Python多进程练习

    1,进程启动 通过Process方法启动,通过下面的代码执行结果,可以发现,开启的进程与WHILE循环语句会同时进行. 为什么呢?因为都是启动了进程在运行程序. from time import sl ...

  8. JavaScript Math(算数) 对象

    JavaScript Math(算数) 对象 Math(算数)对象的作用是:执行常见的算数任务. 在线实例 round()如何使用 round(). random()如何使用 random() 来返回 ...

  9. 三种将list转换为map的方法

    1) 传统方法假设有某个类如下 Java代码 class Movie { private Integer rank; private String description; public Movie( ...

  10. iOS block相关面试题

    一.前言本文重点来研究一下 objc 的 block,并具体来分析一下以下一些面试题目:block 的内部实现,结构体是什么样?block 是类吗?有哪些类型?一个 int 变量被 __block 修 ...