| 362 | | if (wsdl_fault_details) |
|---|
| 363 | | registry = wsdl_fault_details[:use] == "literal" ? |
|---|
| 364 | | @literal_mapping_registry : @mapping_registry |
|---|
| 365 | | faultQName = XSD::QName.new( |
|---|
| 366 | | wsdl_fault_details[:ns], wsdl_fault_details[:name] |
|---|
| 367 | | ) |
|---|
| 368 | | detail = Mapping.obj2soap(e, registry, faultQName) |
|---|
| 369 | | # wrap fault element (SOAPFault swallows top-level element) |
|---|
| 370 | | wrapper = SOAP::SOAPElement.new(faultQName) |
|---|
| 371 | | wrapper.add(detail) |
|---|
| 372 | | detail = wrapper |
|---|
| 373 | | else |
|---|
| 374 | | # Exception is a normal program exception. Wrap it. |
|---|
| 375 | | detail = Mapping.obj2soap(Mapping::SOAPException.new(e), |
|---|
| 376 | | @mapping_registry) |
|---|
| 377 | | detail.elename ||= XSD::QName::EMPTY # for literal mappingregstry |
|---|
| | 362 | begin |
|---|
| | 363 | if (wsdl_fault_details) |
|---|
| | 364 | registry = wsdl_fault_details[:use] == "literal" ? |
|---|
| | 365 | @literal_mapping_registry : @mapping_registry |
|---|
| | 366 | faultQName = XSD::QName.new( |
|---|
| | 367 | wsdl_fault_details[:ns], wsdl_fault_details[:name] |
|---|
| | 368 | ) |
|---|
| | 369 | detail = Mapping.obj2soap(e, registry, faultQName) |
|---|
| | 370 | # wrap fault element (SOAPFault swallows top-level element) |
|---|
| | 371 | wrapper = SOAP::SOAPElement.new(faultQName) |
|---|
| | 372 | wrapper.add(detail) |
|---|
| | 373 | detail = wrapper |
|---|
| | 374 | else |
|---|
| | 375 | # Exception is a normal program exception. Wrap it. |
|---|
| | 376 | detail = Mapping.obj2soap(Mapping::SOAPException.new(e), |
|---|
| | 377 | @mapping_registry) |
|---|
| | 378 | detail.elename ||= XSD::QName::EMPTY # for literal mappingregstry |
|---|
| | 379 | end |
|---|
| | 380 | rescue |
|---|
| | 381 | detail = SOAPString.new("failed to serialize detail object: #{$!}") |
|---|