起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2190|回复: 2

[结贴] wex5调用soap方式的webservice外部接口

[复制链接]

20

主题

149

帖子

410

积分

中级会员

Rank: 3Rank: 3

积分
410
QQ
发表于 2017-3-20 18:39:24 | 显示全部楼层 |阅读模式
1. wex5环境3.6
2. webservice(使用apache cxf开发的webservice,url:http://192.168.1.60:8090/ecif_service/service/cmp?wsdl

我查看了轮胎中其他关于webservice调用的帖子,还是没有解决问题,求助!!


1)我使用cordovaHTTP调用方式,只能获取到url在浏览器中显示的内容,而并不是调用webservice暴露的接口
  1. cordovaHTTP.get("http://192.168.1.60:8090/ecif_service/service/cmp/hello", {
  2.                         partyId : "abc"
  3.                 }, {
  4.                 }, function(response) {
  5.                         console.log("success");
  6.                         console.log(response);
  7.                 }, function(response) {
  8.                         console.log("error");
  9.                         console.log(response);
  10.                 });
复制代码

2)采用ajax方式,则后台报错
  1. $.ajax({
  2.                         type: "get",
  3.                         url: "http://192.168.1.60:8090/ecif_service/service/cmp/hello?wsdl",
  4.                         dataType: "jsonp",
  5.                         jsonp: "CallBack",
  6.                         success: function(response){
  7.                                 console.log("success");
  8.                                 console.log(response);
  9.                         },
  10.                         error: function(e){
  11.                                 console.log("error");
  12.                                 console.log(e);
  13.                         }
  14.                 });
复制代码
3)修改普通ajax调用
  1. $.ajax({
  2.                         url: "http://192.168.1.60:8090/ecif_service/service/cmp?wsdl",
  3.                         success: function(response){
  4.                                 console.log("success");
  5.                                 console.log(response);
  6.                         },
  7.                         error: function(e){
  8.                                 console.log("error");
  9.                                 console.log(e);
  10.                         }
  11.                 });
复制代码

以上。

难道只能通过在后台新建一个servlet中间层,再中间层再去调用webservice接口?


webservice接口内容

webservice接口内容

ajax脚本错误

ajax脚本错误
QQ截图20170320183517.jpg
发表于 2017-3-21 10:56:54 | 显示全部楼层
这个问题!建议上网搜一下吧!
1现在浏览器中输入这个URL!返回值是一个xml文件!需要自己对这个xml进行解析!
cordovaHTTP 方式调用,能返回数据,说明是成功的!不过js如何对xml解析?也需要自己上网查(或者查询下有没有方法返回json格式的数据!)
2.浏览器能访问!而ajax访问失败,唯一的原因就是跨域引起的:http://docs.wex5.com/ajax-cross-domain/
跨域需要服务器的支持才可以!

3. 建议还是通过后台java去调用webService ,这是比较正规的做法!!返回的数据可以封装成java类!~获取数据再返回前台即可!!而且还可以自己构造数据的返回格式!!
因为数据要加载到data组件中!数据格式必须符合data组件加载数据的要求
http://docs.wex5.com/wex5-ui-question-list-2032/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

20

主题

149

帖子

410

积分

中级会员

Rank: 3Rank: 3

积分
410
QQ
 楼主| 发表于 2017-3-22 17:23:34 | 显示全部楼层
已经解决了。
客户端调用方式代码如下:
  1. var data = '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'
  2.                         + '<soap:Header/>'
  3.                         + '<soap:Body>'
  4.                         + '<ns1:hello xmlns:ns1="http://impl.server.ws.computech.com/"></ns1:hello>'
  5.                         + '</soap:Body>'
  6.                         + '</soap:Envelope>';
  7.                 $.ajax({
  8.                         "type": "POST",
  9.                         "async": false,
  10.                         "Content-Type": "text/xml;charset=utf-8",
  11.                         "url": "http://192.168.1.60:8090/ecif_service/service/cmp",
  12.                         "dataType": "xml",
  13.                         "data": data,
  14.                         "success": function(response){
  15.                                 console.log("success");
  16.                                 console.log(response);
  17.                         },
  18.                         "error": function(e){
  19.                                 console.log("error");
  20.                                 console.log(e);
  21.                         }
  22.                 });
复制代码

2. 服务端需要在响应消息头中添加响应头:Access-Control-Allow-Origin:*
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-3-29 04:56 , Processed in 0.075155 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表