关于webservices和SOAP

关于webservices和SOAP
看到以下代码
//构建方法
    var   method   =   new   SOAP.Method(null,new   WS.QName("login",NAMESPACE_FRAMEWORKS));
    var   params   =   new   Array({value:uvalue,type:TYPE.STRING},{value:pvalue,type:TYPE.STRING});
    method.addMethodParams(params);
    //调用webservices进行验证
    var   call   =   new   WS.Call(window.baseUrl+'/services/login');
不知道该看些什么资料学习下?刚搜索了相关文章,好象没有介绍以上代码写法的.工程有个WS.JS文件,定义了好多对象.请问大家有什么资料可以学WS.JS文件里的东西吗?最好有例子的那种.谢谢大家

是啊,大家谁会的说说,提供点资料吧,我也正需要呢,大家帮帮忙!

1、先下载个prototype.js学习一下,结合JSON的知识,这样ws.js里面的一些写法就知道是怎么回事了;
2、new   WS.QName("login",NAMESPACE_FRAMEWORKS)创建了一个Web服务限定名对象,NAMESPACE_FRAMEWORKS是前面定义好的命名空间,比如:http://www.xxx.com/framework,login是一个Web   Service的名字。


3、new   SOAP.Method(null,qname)以默认的Soap信封创建了一个Soap消息的方法,SOAP.Method、SOAP.Envelope在ws.js中都有定义。
4、params定义了传递给method方法的参数,在ws.js中的SOAP   Method节中有addMethodParams方法的定义。经过2、3、4步骤就产生了类似下面的XML(参数没有加上去,自己调试时可以看一下):
<Envelope   xmlns="http://www.w3.org/2003/05/soap-envelope"> <Body>
<login   xmlns="http://www.xxx.com/framework">
</login> </Body> </Envelope>
5、new   WS.Call()创建了一个调用对象,这个对象以window.baseUrl+'/services/login'初始化,实际上是对应Web应用服务器上的一个名为login的Servlet,如果window.baseUrl也为http://www.xxx.com/framework,那么这个Servlet通过http://www.xxx.com/framework/services/login访问,包含了处理登录的业务逻辑。但此时还没有调用。
6、代码下面还应该有call.invoke(method.envelope,callback);这句才是将上面产生的XML   Soap消息发送给Web服务器上的login   Servlet进行处理,封装了含有Ajax特性的调用方法,其中callback是回调函数用来处理服务器返回的数据(返回的数据可以在Servlet中自定义),用来向客户显示处理结果等。形式如下:
function   callback(call,envelope){    
    var   element   =   envelope.asElement();  
    alert(element.selectSingleNode(".//svl").text);
}

说的不是很细,希望对大家有帮忙:)

首先先谢谢楼上的.但我现在不知道WS.JS该怎么学?难道没有资料介绍WS.JS里的东西吗?那里面的东西好多.但我不知道WS.JS这是什么技术里的?

IT专家网上有篇文章讲了一些这方面的东东,地址:http://webservices.ctocio.com.cn/tips/478/6300478.shtml
特别详细的资料说实话我也没见到过,我是用debug进去一行行看出来的,肯定有理解的不对的地方。有什么问题可以在这个帖子里交流,也期待有人能把这方面的详细资料共享出来!

刚才有事没多说。ws.js里面的东西是挺多的,而且不仅仅是这一个js文件,可能还有prototype.js等其他的几个文件,依不同的项目可能ws.js里面的东西还有不同。大体的思路是在客户端用Javascript封装Web   Service所涉及的一些对象,构造XML形式的SOAP消息通过XMLHttpRequest对象以异步(也可以同步)方式发送给Web服务器处理,Web服务器端会有相应的Servlet来解析并处理这种请求。 数据挖掘实验室

ws.js里面有不清楚的地方可以帖出来一起探讨!

> 但我不知道WS.JS这是什么技术里的?
就是用js拼装一个ws的信息,然后通过xmlhttp发送。首先你要了解ws——web   service。ws.js其实没什么。

哇塞呀,程序的流程确实和冰块说的一样.但是,就像你说的一样.构造XML形式的SOAP消息是怎么弄的,你有什么资料吗?
还有就是JAVASCRIPT形式的Web       Service有什么资料吗?这些是我比较头疼的地方.以这种技术开发我会,但不太明白其中的内核技术,想搞明白点.这样就可以任我修改了.

呵呵,我有的资料也就是上面给出的网址了,我也想得到这方面比较权威的资料呢!我到是想写一点这方面的东西,但是一是自己没有时间,二是不知道写出来的对不对,三是文笔太差,所以就没写。我觉得最好的方式就是楼主有什么不清楚的就提出来,咱们一起探讨,探讨不明白的还有CSDN的大牛呢:)非要一份深入完整的资料,俺也在等待啊,哈哈!

我这用到的这种技术还涉及很大一部分Web服务器上Java写的程序,所以我觉得干脆就用这个帖子当媒介,在这里学习这方面的技术好了!楼主哪里不清楚就帖出来,相信这里的朋友会知无不言的:)

好!1是:怎么样在javascript里够建SOAP消息,用java类怎么解析!让我先练练手!高手们

然后服务器那边怎么构造SOAP消息?返回到客户端时,javascript怎么解析服务器返回来的SOAP消息?这些比较精髓.请会的朋友们赐教.不胜感激.最好能有一个小例子.那简直就完美了!

有关SOAP消息包括哪些请楼主自己找些资料参考,这里说下客户端如何用JS构造SOAP消息。 数据挖掘工具
就以楼主说的登录为例吧,在登录页面会有如下的INPUT控件:

HTML code
<input type="text" id="username"> <input type="password" id="password">
数据挖掘研究院

当用户点击“登录”按钮时会执行如下的代码:
JScript code
function userLogin(){ //用户名:zhangsan var username = $("username").value.trim(); //密码:zs var password = $("password").value.trim(); /* 客户端验证 */ //构建方法 var method = new SOAP.Method(null,new WS.QName("login",NAMESPACE_FRAMEWORKS)); var params = new Array({value:username,type:TYPE.STRING},{value:password,type:TYPE.STRING}); method.addMethodParams(params); //调用webservices进行验证 var call = new WS.Call(window.baseUrl+"/services/login"); call.asynchronous = false;//同步发送 call.invoke(method.envelope,callback); function callback(call,envelope){ var element = envelope.asElement(); if(element != null){ //other codes } } }

数据挖掘工具


1、new   WS.QName("login",NAMESPACE_FRAMEWORKS)创建了一个Web服务限定名对象,NAMESPACE_FRAMEWORKS是前面定义好的命名空间字符串,比如:http://www.xxx.com/framework,可以把它当成常量。login是一个Web   Service的名字或对应服务器上的一个Servlet,这个后面再说。
  WS.QName在ws.js中可以找到以  
JScript code
WS.QName = Class.create();
数据挖掘实验室
开始的一段代码,从字面意义看就是创建一个对象并初始化(有关这种代码的写法及含义可以从网上找些prototype.js的学习资料看看)。
2、new   SOAP.Method()以默认的Soap信封创建了一个Soap消息。SOAP.Method在ws.js中可以找到以  
JScript code
SOAP.Method = Class.create();
数据挖掘研究院
开始的一段代码,
JScript code
SOAP.Method.prototype = (new SOAP.Element()).extend({...});
表示Method从Element扩展(继承)并定义了envelope,inparams,outparams,decorator,hasType等几个新的属性和initialize,createSelect,addMethodParams等一些方法。而SOAP.Element则定义了ownerDocument属性,initialize、asElement、qname、setAttribute等方法。
  如果楼主用过java   C#等面向对象的语言,这里就可以看成是用Javascript实现的OO。
  在Method的initialize方法中是用参数doc和qname初始化的这个对象,由于doc传入的是null所以执行
JScript code
this.envelope = new SOAP.Envelope(); doc = this.envelope.ownerDocument; body = this.envelope.createBody();

数据挖掘工具


  这段代码,创建了SOAP信封对象并得到根节点,然后调用信封对象的createBody创建SOAP的Body部分。后面的代码用doc和qname创建了一个XML元素,调用父类(Element)的initialize_internal方法,把自己作为子节点加到SOAP的Body上。
  通过这些代码就产生了包含如下内容的method对象:
XML code
<Envelope xmlns="http://www.w3.org/2003/05/soap-envelope"> <Body> <login xmlns="http://www.xxx.com/framework"> </login> </Body> </Envelope>
数据挖掘工具

3、接下来创建了一个参数数组params,含有两个元素,每个元素都是一个对象,包含两个属性:value和type。一个对象代表用户名,另一个代表密码。TYPE.STRING在ws.js里面也有定义。
4、调用method的addMethodParams方法给method对象添加参数,执行后mehtod对象的内容如下:
XML code
<Envelope xmlns="http://www.w3.org/2003/05/soap-envelope"> <Body> <login xmlns="http://www.zktr.com/jc/yhwh" type="params"> <vls xmlns=""> <vl type="string">zhangsan</vl> <vl type="string">zs</vl> </vls> </login> </Body> </Envelope>

数据挖掘交友


5、创建一个WS.Call对象,这个对象的invoke方法将上面过程构造的SOAP消息发送给URL:window.baseUrl+'/services/login'进行处理,所以这里的login可以是WS或Servlet。发送的方式可以是同步的也可以是异步的,通过其asynchronous属性设置。callback是自定义的回调函数,可以处理服务器返回的消息。

  时间关系java中如何解析下次再写,不知道这样说是不是清楚?我觉得这个里面的东西最好的学习方式就是以调试方式追踪进去一行行的执行,一边执行一边看都发生了什么变化,这样比较好理解。举例子来说肯定有说不到的地方,后台解析的部分更是如此。下次再写,困了:)

谢谢冰块!你写的我都懂了.谢谢,对我帮助挺大的!

Create By Any-Extract(WL-AE) 数据挖掘工具

[数据挖掘专家] [数据挖掘研究院] [数据挖掘论坛] [数据挖掘实验室]
上一篇:如何利用xml数据存储策略实现留言版
下一篇:如何使device
最新评论共有 0 位网友发表了评论 , 查看所有评论
发表评论( 不能超过250字,需审核,请自觉遵守互联网相关政策法规。 )
匿名?
数据挖掘网站导航 数据挖掘论坛导航
  • 数据挖掘工具
  • 数据挖掘论坛
  • DataCruncher - Cognos
  • MineSet - MathSoft
  • Intelligent Miner - GainSmarts
  • Sqlserver - SAS - Clementine
  • CART - Weka - WizSoft
  • NeuroShell - ModelQuest
  • data mining tools - Darwin
  • 数据挖掘交友
  • 数据挖掘博客
  • 数据挖掘工具
  • 数据挖掘资源
  • 数据挖掘技术算法
  • 数据挖掘相关期刊、会议
  • 研究院联盟合作专区
  • 数据挖掘基础与相关技术
  • 数据挖掘厂商与就业
  • 数据挖掘研究者乐园
  • 知名厂商数据挖掘工具资料
  • 国内数据挖掘实验室
  • Foreign Data Mining Lab
  • 热点关注
  • W3C概述
  • ASP+soap调用web service的问题,高手帮忙
  • 什么是语义网?
  • RSS History
  • 求助,PHP讀取XML文件
  • xml+xsl+js实现一个有横向列的导航菜单?
  • XML基础之 DataSet加载XML数据文件
  • 如何在xml中保存图片,以二进制流的形式保存
  • XML & 数据融合
  • Final Component of the Complete Meta Dat
  • 论坛最新话题
  • Foundations of Statistical Natural Langu
  • Game Theory meet Data Mining: A Recent P
  • System Building: How does it help or hin
  • 数据挖掘与Clementine培训
  • 新手报到
  • 求 SASEM 客户流失预测分析
  • 数据挖掘工程师/搜索研究院—北京——无线
  • 数据挖掘入门介绍(如何着手数据挖掘)
  • Information Overload Survey Results
  • The INEX 2005 Workshop on Element Retrie
  • 相关资讯
  • What's Still Wrong with SQL Native XML I
  • Final Component of the Complete Meta Dat
  • What's Still Wrong with SQL Native XML I
  • XML及其技术指南
  • 保存.NET应用程序设置
  • 在.NET Framework中轻松处理XML数据(4
  • 将改变我们生活的这些XML应用之一
  • XML、Web服务和.NET框架
  • flash中通过XMLSocket监控生产系统(2
  • 将改变我们生活的这些XML应用之二
  • 数据挖掘实验室资料
  • 数据挖掘博客地址
  • 数据挖掘实验室网站地址
  • Prepare for Medicare audits by using dat
  • 注册成为SAS用户与爱好者俱乐部会员
  • 水南梅
  • 明日烟
  • 新人报道
  • 下载
  • 厦门服务器托管,450元/月—0592-5177319 高
  • 买空间送域名--0592-5177319 高静