使用axis 调用webservice时怎么处理返回字符串数组

Future<String[]> monitor = threads.submit(new Callable<String[] >() {
    @Override
    public String[] call() throws Exception {
        Call call = getMonitorCall();
        String result[] = (String[]) call.invoke(new Object[]{});//返回结果
        log.info("DG983盾构主监控返回数据:"+result);
        return result;
    }
});
try {
    ShieldData shieldData = new ShieldData();
    String[] Data1 = monitor.get(60, TimeUnit.SECONDS);
    String dataDG983 = org.apache.commons.lang3.StringUtils.join(Data1, ",");
    shieldData.setType(active);
    //等待数据接收完成
    shieldData.setMonitorDG983(dataDG983);
    log.info("DG983对象数据"+shieldData.toString());
    //发送智慧工地服务器
    String Vo = OKHttpUtil.postMap(addShieldProUrlNew15, null, shieldData);
    log.info("DG983数据已发送成功!且返回数据:"+Vo);
    log.info("DG983程序调用完成");
}catch (Exception e){
    log.info("DG983链接错误:"+e);
    log.info("DG983错误消息:"+e.getMessage());
}

调用:

private Call getMonitorCall(){
        if(monitorCall == null){
            try {
                //使用AXIS远程调用WebService服务; webservice路径 这里后面加不加 "?wsdl" 效果都一样的                

                String endpoint = "http://192.168.110.24/OPC_Read_Write_Svr/Service.asmx";//链接地址 DG983
                Service service = new Service();//新建服务
                URL url = new URL(endpoint);//新建URL
                monitorCall = (Call) service.createCall();//服务链接
                monitorCall.setTargetEndpointAddress(url);//设置url
                monitorCall.setOperationName(new QName("getData"));//设置调用接口名
                // 设置返回值类型
                // 对于返回是字符串数组的返回类型只有这两种可行
                monitorCall.setReturnClass(java.lang.String[].class);
                monitorCall.setUseSOAPAction(true);
                monitorCall.setSOAPActionURI("http://www.crcc.cn/getData");
//                call.setReturnType(XMLType.SOAP_ARRAY);
//                call.setUseSOAPAction(true);
//                call.setSOAPActionURI("http://www.crcc.cn/getData");

            }catch (Exception e){
                log.error("[e]getMonitorCall exception!",e);
            }
        }
        return monitorCall;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值