webService 实战篇--客户端调用
<wsdlsoap:address location=“http://10.213.54.118:7000/BundleSmart/webservice/GridWebService”/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
[](()IDEA 解析WSDL
==========================================================================
如果右键没有发现webservice ,说明你的IDEA 没有webservice 插件,不用慌,装一个就可以了,也很简单。
ctrl+alt+s,勾选如下图两个就可以了。
右键项目webservice,如下图,会弹出框。
file:/D:/guanxian.wsdl 是我本地的wsdl 文件路径,如果网络互通,可以直接填写url.
com.guanxian.webserver 是我们自定义存放的包路径。
点击OK,就可以下载成功,如下图。
[](()请求参数
===================================================================
在这之前,先说一下需求以及接口的格式吧。
输出格式:
<?xml version="1.0" encoding="UTF-8"?>
网格、经营部ID
1-网格、2-经营部
0-失败、1-成功
失败时反馈失败信息(例:该网格数据不存在、该经营部数据不存在。。。)
<gcll_line>
<gcll_name>专线名称</gcll_name>
<gcll_type>专线类型</gcll_type>
</gcll_line>
<gcll_line>
<gcll_name>专线名称</gcll_name>
<gcll_type>专线类型</gcll_type>
</gcll_line>
<gcll_site>
<gcll_name>站点名称</gcll_name>
</gcll_site>
<gcll_site>
<gcll_name>站点名称</gcll_name>
</gcll_site>
<gcll_customer>
<gcll_name>站点名称</gcll_name>
</gcll_customer>
<gcll_customer>
<gcll_name>站点名称</gcll_name>
</gcll_customer>
可以看到都是xml 格式的。我们这里请求的参数比较少,所以就直接拼接了。
private String queryFromEoms() throws Exception {
StringBuilder sb = new StringBuilder();
sb.append(“<?xml version=\"1.0\" encoding=\"UTF-8\"?>”)
.append(“”)
.append(“”)
.append(“”).append(grid).append(“”)
.append(“”).append(type).append(“”)
.append(“”)
.append(“”);
log.info(“------requestxml-------”+sb.toString());
GridWebServiceSoapBindingStub stub =new GridWebServiceSoapBindingStub();
return stub.getGridResource(stub.toString());
}
[](()XML 转json
========================================================================
但是返回给我们也是xml ,这里我们返回给前端xml的话就不好了,所以我们将xml 转成json 来返回。
[](()添加maven 依赖
com.alibaba
fastjson
1.2.67
dom4j
dom4j
1.6.1
[](()xml 转json 工具类
public class XmlUtils {
public static JSONObject xml2Json(String xmlStr) throws Exception{
Document doc= DocumentHelper.parseText(xmlStr);
JSONObject json=new JSONObject();
dom4j2Json(doc.getRootElement(), json);
return json;
}
/**
xml转json
@param element
@param json
*/
public static void dom4j2Json(Element element, JSONObject json){
//如果是属性
for(Object o:element.attributes()){
Attribute attr=(Attribute)o;
if(!isEmpty(attr.getValue())){
json.put(“@”+attr.getName(), attr.getValue());
}
}
List chdEl=element.elements();
if(chdEl.isEmpty()&&!isEmpty(element.getText())){//如果没有子元素,只有一个值
json.put(element.getName(), element.getText());
}
for(Element e:chdEl){//有子元素
if(!e.elements().isEmpty()){//子元素也有子元素
JSONObject chdjson=new JSONObject();
dom4j2Json(e,chdjson);
Object o=json.get(e.getName());
if(o!=null){
JSONArray jsona=null;
if(o instanceof JSONObject){//如果此元素已存在,则转为jsonArray
JSONObject jsono=(JSONObject)o;
json.remove(e.getName());
jsona=new JSONArray();
jsona.add(jsono);
jsona.add(chdjson);
}
if(o instanceof JSONArray){
jsona=(JSONArray)o;
jsona.add(chdjson);
}
json.put(e.getName(), jsona);
}else{
if(!chdjson.isEmpty()){
json.put(e.getName(), chdjson);
}
}
}else{//子元素没有子元素
for(Object o:element.attributes()){
Attribute attr=(Attribute)o;
if(!isEmpty(attr.getValue())){
jso 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 n.put(“@”+attr.getName(), attr.getValue());
}
}
if(!e.getText().isEmpty()){
json.put(e.getName(), e.getText());
}
}
}
}
public static boolean isEmpty(String str) {
if (str == null || str.trim().isEmpty() || “null”.equals(str)) {
return true;
}
return false;
}
}
[](()测试方法
webService 实战篇--客户端调用相关推荐
- webService学习4:客户端调用服务端的代码
1 服务器端sayHello变化了一点,代码如下 @WebService public class HelloWSImpl implements HelloWS {public String sayH ...
- Spring集成CXF发布WebService并在客户端调用
Spring集成CXF发布WebService 1.导入jar包 因为官方下载的包里面有其他版本的sprring包,全导入会产生版本冲突,所以去掉spring的部分,然后在项目根目录下新建了一个CXF ...
- Tomcat 配置用户认证服务供C#客户端调用
我美丽又贤惠的老婆大人做大骨头汤去了,今天是六一儿童节,明天是端午节,在这大好的节日,我们也难得的度假一把,大吃大喝一番,感谢我的老婆有这么好的手艺. 今天心情不错,要知道我们在平时的工作日没这么长时 ...
- httpclient妙用一 httpclient作为客户端调用soap webservice(转)
前面有一篇使用HttpClient调用带参数的post接口方法,这里找到一篇使用HttpClient调用Soap协议接口的方式. 原文地址:httpclient妙用一 httpclient作为客户端调 ...
- java .net webservice_Java客户端调用.NET的WebService实例
项目需要去调用.NET的WebSrevice,本身是Java,研究了半天,终于有些头绪,记下来. 1,新建.NET WebService.只在原方法上加上一个string类型的参数str [WebMe ...
- gSoap客户端调用WebService完成后注意内存释放顺序
gSoap客户端调用WebService完成后注意内存释放顺序 [cpp] view plaincopy //Soap资源清理 soap_destroy(soap_sp.get()); //清理反序 ...
- java webservice ssl_[转贴]Java客户端调用Https Webservice
标题: Java客户端调用Https Webservice出处地址:http://hi.baidu.com/sunshibing/blog/item/08f873f0d41e67c37931aa84. ...
- WebService的四种客户端调用方式(基本)
转载:http://blog.csdn.net/csdn_gia/article/details/54863549 web服务网址:http://www.webxml.com.cn/zh_cn/web ...
- 服务端使用Axis2-1.6.3发布webservice服务、客户端使用Axis1.4实现调用
一.准备工作 下载Axis2-1.6.3-war.zip 下载链接 下载Axis1.4相关jar包 下载链接 二.开发Webservice服务端代码 使用环境:myeclipse6.6+tomcat6 ...
最新文章
- java例程练习(批量修改文件后缀名)
- Visual Studio 2008 十大新功能
- react-router的使用(二)——NavLink的使用、Switch的作用、Redirect
- 线性规划图解法求最优解_高中数学:简单的线性规划问题
- 计算机应用基础的文档,计算机应用基础
- 每日英语:Do Bicycle Helmet Laws Really Make Riders Safer?
- iis设置首页为main.html,遇到X-Frame-Options头未设置"怎么解决
- 三维绘图之Mayavi.mlab
- 推荐5款超实用的小软件,建议先收藏再下载
- 紫光华宇拼音输入法使用技巧
- MySQL Binlog 【ROW】和【STATEMENT】选择(转)
- mysql读写分离延迟问题_MySQL读写分离后的延迟解决方案
- 三菱PLC MC协议
- windows系统排查-文件分析
- 力扣LeetCode刷题笔记总结1
- PaddleX---dEEPlABv3+语义分割
- 苹果手机闹钟声音大小怎么调_偷偷安利5款让手机体验到爆的app,乐趣满满
- 希腊海底失落之城最新打揭秘
- html制作网易云音乐登录系统,JavaScript实现[网易云音乐Web站登录窗口]拖拽功能...
- ERD图“乌鸦脚”形式表示的关系的使用方法与理解
热门文章
- PHP蜘蛛抓取,百度蜘蛛频频抓取php文件怎么办(悬赏1元) - 搜外SEO问答
- 武林外传爆笑江湖java7723_原班人马上演爆笑江湖路《武林外传电影手游》评测...
- matlab中nnt,基于MATLAB的边坡稳定性评价方法
- 双照电子受邀参加广州人工智能公共算力中心企业对接会
- 智慧医院导诊导航系统
- 杨元喜院士:《北斗+与综合PNT体系》
- HOG_SVM_行人检测数据集合_INRIA数据集
- 云计算架构及服务模式
- 大数据岗位的面试总结
- 第161天学习打卡(谷粒商城 3 安装powerDesigner软件 下载nodejs)