我已经使用wsdl2ruby为web服务生成了一个客户端。当服务方法引发WSDL中定义的异常之一时,我希望访问异常对象的属性。据我所知,异常对象已被编组到一个SOAP::Mapping::对象中,该对象由可用于救援块的SOAP::FaultError对象的detail属性引用。
尽管SOAP::Mapping::Object响应marshal_load方法,但该方法接受一个参数dumpobj,这使我认为应该提供该对象作为方法的参数,而不是使用该对象作为方法的接收者。
有没有人能给我举个例子,说明解组异常对象的正确方法?
发布于 2009-11-19 06:57:53
如果探究SOAP::Mapping::Object,看起来解组已经完成了...
rescue SOAP::FaultError => ee
## InvalidLogin, InvalidLocale, NoPermission, RuntimeFault
## ee.detail.__xmlele[0][0] is an XSD::QName object, with accessors name and namespace
## ee.detail.__xmlele[0][1] is a VMware::VIM25::xxx fault object
vim_fault = ee.detail.__xmlele[0][1]
case vim_fault.class
when VMware::VIM25::InvalidLogin
when VMware::VIM25::InvalidLocale
when VMware::VIM25::NoPermission
when VMware::VIM25::RuntimeFaulthttps://stackoverflow.com/questions/914856
复制相似问题