/**
* 可调整调用方法与命名空间的请求
* @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;
}

最新文章

  1. angularjs-$http.post请求传递参数,后台Controller接受不到原因
  2. Tomcat中JVM内存溢出及合理配置及maxThreads如何配置(转)
  3. 如何使用Javascript判断浏览器终端设备
  4. Java 类加载机制详解
  5. [SVN]创建本地的SVN仓库
  6. linux下一个apache+tomcat负载均衡和集群
  7. NodeJS中的http模块
  8. jQuery实现用户输入自动完成功能
  9. 支持各种特殊字符的 CSV 解析类 (.net 实现)(C#读写CSV文件)
  10. MySQL之数据的简单查询
  11. Java 7 for Absolute Beginners/Java 7基础教程--代码纠错
  12. python3+requests库框架设计03-请求重新封装
  13. JavaEE XML的读写(利用JDom对XML文件进行读写)
  14. (转)Nandflash读写
  15. Day18-前端和后端怎么区分
  16. Fiddler抓取HTTPS最全(强)攻略
  17. Maven Assembly插件介绍
  18. npm 安装私有 git 包
  19. IE11浏览器卸载
  20. Apache Hive (六)Hive SQL之数据类型和存储格式

热门文章

  1. axios与ajax的优缺点
  2. 89、des加密算法
  3. c# 如何实现图片压缩
  4. 什么是bootstrap?
  5. vue 页面嵌入pdf文件
  6. Jmeter进行服务器性能压力测试遇问题及解决方案
  7. RabbitMQ消息堆积问题?
  8. mySql查询-系统公告发布接收人情况
  9. Kafka的启动 并创建topic
  10. Java中Math类常用方法