Web services 如何在ColdFusion中进行同步SOAP调用
在ColdFusion 9中是否可以进行同步SOAP调用?我感兴趣的特定API是由eCircle发布的,这里有一个使用PHP的示例Web services 如何在ColdFusion中进行同步SOAP调用,web-services,soap,coldfusion,Web Services,Soap,Coldfusion,在ColdFusion 9中是否可以进行同步SOAP调用?我感兴趣的特定API是由eCircle发布的,这里有一个使用PHP的示例 ColdFusion可以实现同样的功能吗?调用Web服务是同步的。你是说异步调用吗?我的其余答案是基于这个假设 现在,没有。为了支持这一点,您需要指定一个特定的CFC/函数来处理web服务响应——当它响应时——在不同的线程上。不过,如果CF对闭包的支持到来的话,可能很快就会到来(据推测是这样的) ColdFusion支持内置的SOAP web服务—web上有大量资
ColdFusion可以实现同样的功能吗?调用Web服务是同步的。你是说异步调用吗?我的其余答案是基于这个假设 现在,没有。为了支持这一点,您需要指定一个特定的CFC/函数来处理web服务响应——当它响应时——在不同的线程上。不过,如果CF对闭包的支持到来的话,可能很快就会到来(据推测是这样的) ColdFusion支持内置的SOAP web服务—web上有大量资源 您还可以研究使用事件网关进行异步处理,或者确实可以要求SOAP提供程序接受您的请求,然后将响应以单独的请求发送到您为其定义的另一个web服务。这会给人一种异步调用的错觉,但事实上,您只是在启动一个响应,然后在其他地方等待响应。这一点都不理想,因为这意味着您必须匹配可能会变得混乱的请求和响应 希望有帮助 从到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 !
。。。
client=createObject('webservice','http://webservices.ecircle-ag.com/soap/ecm.wsdl');
...
//询问api版本
结果=client.getVersion();
//检查调用API函数时是否出错?
//异常将被抛出,我猜。。。
...
writeOutput(“版本号为:#result.getVersionReturn#”);
...
//登录
结果=client.logon(FORM.realm、FORM.username、FORM.passwd);
//获取会话id
sessionid=result.logonReturn;
.....
//font稍后忘记注销!
参考资料:我迄今为止没有使用SOAP的经验,只有基于REST的服务,因此请原谅我的相对无知。根据我在问题中引用的文档,ECircle提供了同步和异步API。使用同步API需要此处描述的请求周期。我怀疑这在CF中是不可能的,至少在least并非没有使用外部Java库。谢谢,Henry,我被文档和示例的复杂性所折服。当然,在CF中它真的就这么简单!