如何在ColdFusion中进行同步SOAP调用

时间:2011-07-04 11:56:31

标签: web-services soap coldfusion

在ColdFusion 9中是否可以进行同步SOAP调用?我感兴趣的特定API由eCircle发布,他们在这里有一个使用PHP的例子

http://developer.ecircle-ag.com/apiwiki/wiki/SynchronousSoapAPI#section-SynchronousSoapAPI-PHPSample

使用ColdFusion可以实现同样的目的吗?

3 个答案:

答案 0 :(得分:3)

http://developer.ecircle-ag.com/apiwiki/wiki/SynchronousSoapAPI#section-SynchronousSoapAPI-PHPSample到CFScript的快速端口

   ...
   client = createObject('webservice','http://webservices.ecircle-ag.com/soap/ecm.wsdl');
   ...
   // ask for the api version
   result = client.getVersion();
   // check if there was an error calling the API function?

     // exception will be thrown I guess...

   ...
   writeOutput("The Version Number is :<pre>#result.getVersionReturn#</pre>";
   ...
   // logon 
   result = client.logon(FORM.realm, FORM.username, FORM.passwd);
   // get session id
   sessionid = result.logonReturn;
   .....

   // font forget to log out later !

参考:http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec22c24-78b4.html

答案 1 :(得分:2)

调用webservices是同步的。

答案 2 :(得分:0)

你的意思是异步电话吗?我的其余部分是基于这个假设。

此时,没有。为了支持这一点,您需要指定一个特定的CFC /函数来处理Web服务响应 - 当它响应时 - 在另一个线程上。也许很快,如果CF支持闭包(并且推测它是coming)。

ColdFusion支持内置的SOAP Web服务 - Web上有大量资源。

您还可以调查使用事件网关进行异步处理,或者您确实可以要求SOAP提供程序接受您的请求,然后将响应发送到您为其定义的另一个Web服务的单独请求中。这会产生异步调用的错觉,但实际上你只是关闭响应然后等待其他地方的响应。它并不是所有TBH的理想选择,因为它意味着您必须匹配可能变得混乱的请求和响应。

希望有所帮助。