WEB开发网
开发学院软件开发Java AJAX 及使用 E4X 编写 Web 服务脚本,第 2 部分:... 阅读

AJAX 及使用 E4X 编写 Web 服务脚本,第 2 部分:用 E4X 创建新的 Web 服务

 2010-03-09 00:00:00 来源:WEB开发网   
核心提示: 图 3. 简单的编排服务每次查找 WSDL 是不现实的,但是它阻止了这篇文章中对端点 URL 的修改,AJAX 及使用 E4X 编写 Web 服务脚本,第 2 部分:用 E4X 创建新的 Web 服务(7),这里也展示了这种实现逻辑,更多的智能脚本可以缓存结果,我们已经清除了 location

图 3. 简单的编排服务
AJAX 及使用 E4X 编写 Web 服务脚本,第 2 部分:用 E4X 创建新的 Web 服务

每次查找 WSDL 是不现实的,但是它阻止了这篇文章中对端点 URL 的修改,这里也展示了这种实现逻辑。更多的智能脚本可以缓存结果。但是,为了将这个用在 Rhino 中,我们可能要编写一个 Java 的 singleton 类。

首先要做的就是专门编写一个从 WSDL 中提取 URL 的函数,因为从 WSDL 中提取 URL 需要执行两次。

function getAndParseWSDL(wsdlURL) { 
  var xh = new XMLHttpRequest(); 
  xh.open("GET", wsdlURL ,false); 
  xh.send(null); 
  var resp = getAsXML( xh.responseText) 
  return resp..*::address.@location[0]; 
} 

您将注意到两件事情。首先,因为这些都将在服务器里运行,所以我们希望能够同步地执行所有这些操作,因为异步操作需要大量的”智能机制“,例如持久性保存与 Web 服务寻址(WS-Addressing)的支持。

其次,因为我们想使代码具有一些未来的实验,我们已经清除了 location 用来抽取第一个location。如果我们想做的更彻底一点,我们需要遵循 WSDL 结构来指定有我们期望的绑定的位置信息。

这里是获取货币符号的代码:

function getCurrencyValue(country, url) { 
  var env = <s:Envelope 
   xmlns:c="urn:xmethods-CurrencyExchange" 
   xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
     <s:Body> 
      <c:getRate> 
     <country1>US</country1> 
   <country2>{country}</country2> 
      </c:getRate> 
     </s:Body> 
   </s:Envelope> 
 response = execService(url, env); 
 return response..Result; 
} 

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

Tags:AJAX 使用 EX

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