WEB开发网
开发学院软件开发Java 使用 Ajax 调用SOAP Web 服务,第 2 部分: 扩展 W... 阅读

使用 Ajax 调用SOAP Web 服务,第 2 部分: 扩展 Web 服务客户机

 2009-11-08 00:00:00 来源:WEB开发网   
核心提示: 清单 2. 创建与 WSA.js 相关的 EndpointReferencevarepr=newWSA.EndpointReference("http://www.example.org/services/HelloWorld");varepr_rp=epr.create_r


清单 2. 创建与 WSA.js 相关的 EndpointReference
        var epr = 
 new WSA.EndpointReference( 
  "http://www.example.org/services/HelloWorld"); 
var epr_rp = epr.create_reference_parameters(); 
epr_rp.create_child( 
 new WS.QName('foo','urn:foo','abc')). 
  set_value('This is a test'); 

WSA.EndpointReference 的 API 目前支持 WS-Addressing 信息模型所定义的 Address 和 ReferenceParameters 属性。目前尚未实现 Metadata 属性,因为这个属性对于此处实现的客户机基本功能并不重要。

WS-Addressing SOAP 消息 Header 应该设置在 Web 服务客户机发送给服务的 SOAP 信封上。由于在 ws.js JavaScript 库中定义的 WS.Call 对象将隐藏使用底层 SOAP 信封的细节,因此请使用 WS.Handler 来为您插入恰当的 Header。

Web 服务客户机将针对每个请求、响应和错误调用 WS.Handler 对象的各个方法。对于 WS-Addressing 实现,提供了一个 WSA.Handler,以使用相应的 WSA.MessageContext 对象(其中包含要插入到消息中的信息)。清单 3 演示了这一过程。


清单 3. 使用 WS-Addressing 上下文和处理程序
        var address = 'http://www.example.com/services/HelloWorld'; 
var ctx   = new WSA.MessageContext(); 
ctx.to   = new WSA.EndpointReference(address); 
ctx.replyto = new WSA.EndpointReference(WSA.ANONYMOUS); 
ctx.action = address + '#SayHello' 
 
var handler = new WSA.Handler(); 
handler.set_context(ctx); 
 
var call = new WS.Call(''); 
call.add_handler(handler); 

上一页  1 2 3 4 5 6 7 8  下一页

Tags:使用 Ajax 调用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接