RPC方式调用远程webservice接口
2024-09-08 19:36:52
/**
* 可调整调用方法与命名空间的请求
* @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;
}
最新文章
- angularjs-$http.post请求传递参数,后台Controller接受不到原因
- Tomcat中JVM内存溢出及合理配置及maxThreads如何配置(转)
- 如何使用Javascript判断浏览器终端设备
- Java 类加载机制详解
- [SVN]创建本地的SVN仓库
- linux下一个apache+tomcat负载均衡和集群
- NodeJS中的http模块
- jQuery实现用户输入自动完成功能
- 支持各种特殊字符的 CSV 解析类 (.net 实现)(C#读写CSV文件)
- MySQL之数据的简单查询
- Java 7 for Absolute Beginners/Java 7基础教程--代码纠错
- python3+requests库框架设计03-请求重新封装
- JavaEE XML的读写(利用JDom对XML文件进行读写)
- (转)Nandflash读写
- Day18-前端和后端怎么区分
- Fiddler抓取HTTPS最全(强)攻略
- Maven Assembly插件介绍
- npm 安装私有 git 包
- IE11浏览器卸载
- Apache Hive (六)Hive SQL之数据类型和存储格式