码迷,mamicode.com
首页 > 编程语言 > 详细

java使用wsimport调用wcf接口

时间:2020-06-14 18:52:06      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:ref   list   success   iba   aqs   版本   参考   文件中   svc   

wcf接口是由.net提供的webservice接口,一般是使用wsdl文件的样式发布,在wsdl文件中,包含该webservice暴露在外面可供使用的接口。

了解到的调用wfc接口方法有三种:

  1. AXIS调用远程webservice
  2. SOAP调用远程webservice
  3. wsimport生成java代码,调用接口

在尝试方法1、2多次失败后,果断放弃,选择了简单易上手的方法3。通过jdk6.0以上版本自带的wsimport工具,即可根据wsdl文件生成相应的类文件。将这些生成的文件放在相应项目,就可以像调用本地的类一样调用webservice提供给的方法了。

具体步骤:

1、通过wsimport命令生成java代码,命令如下

wsimport ‘http://XXX/BaseInfoService.svc?wsdl‘ -s /XXX/proxy/source -d /XXX/proxy/class -p proxy

-d:指定.class文件的输出目录

-s:指定.java文件的输出目录

-p:定义生成类的包名,不定义的话有默认包名

2、将生成文件放到项目中,创建调用类

  public class TestWsimport{
       private Map<String, String> push(ParamDTO params) {
          BaseInfoService client = new BaseInfoService();
          // 将接口参数封装在ParamDTO中,代码更简洁
          String requestInputStream = JSON.toJSONString(params);
          String resultStr = client.getBasicHttpBindingIBaseInfoService()
                             //需要调用的方法
                             .sendParams(requestInputStream);

          JSONObject resultObj = JSON.parseObject(resultStr);
          Integer success = resultObj.getInteger("Success");
          if (success == 0) {
              Map<String, String> errorMap = Maps.newConcurrentMap();
              String errorDesc = resultObj.getString("Body");
              errorMap.put(clueInfo.getRequestObjectList().get(0).getClueCode(), errorDesc);
              return errorMap;
          }
          return null;
      }
  }

示例接口较简单,只需要发送数据。不同的webservice接口生成的代码会有出入,调用接口的代码需要根据实际情况进行调整。

参考文章:
https://blog.csdn.net/aqsunkai/article/details/51711087

java使用wsimport调用wcf接口

标签:ref   list   success   iba   aqs   版本   参考   文件中   svc   

原文地址:https://www.cnblogs.com/uking/p/13125906.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!