SOAP::Lite serializes faults with wrong element order - detail is serialized before faultactor.
http://www.w3.org/2000/xp/Group/0/12/xp-f2f-redmond-soap-mapping
Intermediaries can report faults using the faultActor element:
The included diff fixes the issue.
Patch provided & reported by Tom Fischer by E-Mail - thanks !
diff -uw /usr/lib/perl5/vendor_perl/5.8.0/SOAP/Lite.pm /home/fischtom/Lite.pm
--- /usr/lib/perl5/vendor_perl/5.8.0/SOAP/Lite.pm 2007-11-08 14:53:43.000000000 +0100
+++ /home/fischtom/Lite.pm 2007-11-08 14:39:16.000000000 +0100
@@ -1482,8 +1482,8 @@
-> value(\SOAP::Data->set_value(
SOAP::Data->name(faultcode => SOAP::Utils::qualify($self->envprefix => $parameters[0]))->type(""),
SOAP::Data->name(faultstring => SOAP::Utils::encode_data($parameters[1]))->type(""),
- defined($parameters[3]) ? SOAP::Data->name(faultactor => $parameters[3])->type("") : (),
defined($parameters[2]) ? SOAP::Data->name(detail => do{my $detail = $parameters[2]; ref $detail ? \$detail : $ detail}) : (),
+ defined($parameters[3]) ? SOAP::Data->name(faultactor => $parameters[3])->type("") : (),
));
} elsif ($type eq 'freeform') {
SOAP::Trace::freeform(@parameters);
Logged In: YES
user_id=884175
Originator: YES
- fixed in CVS. Thanks !