[Xml-compile] parsing SOAP Faults
Gert Doering
gert at space.net
Wed Dec 18 13:32:57 GMT 2013
Hi,
one of my XML::Compile::SOAP11 based interfaces to one of our suppliers
is acting up, and I can't see any off-hand reason why - there's a
production system, which is working in day-to-day operation, and a
test environment, which is only ever used every few months, and today
it broke - could be a change on their side, or a newer version of perl,
XML::Compile, etc. on my side...
So maybe this rings a "quick bell" for one of you.
This is what I get back via https (Dumper($trace)):
'_content' => '<?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><soapenv:Fault><faultcode xmlns:ns1="http://www.telefoncia.de/kts">ns1:10002</faultcode><faultstring>ARERR [10002] Could not transmit data to TDe (See Error Queue for detailed information). (User \'XXXXX\' not found)</faultstring><detail><ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">solr-663</ns2:hostname></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>',
and this is what XML::Compile::Soap prints about it... (trimmed slightly,
to avoid hacking off something important - only the HTTP::Request object
and the Log object are missing):
$VAR1 = \bless( {
'transport_end' => '1387373065.02735',
'errors' => [
bless( {
'reason' => 'ERROR',
'message' => bless( {
'_prepend' => 'decode error: ',
'name' => '{http://xml.apache.org/axis/}hostname',
'_expand' => 1,
'_domain' => 'xml-compile',
'where' => '{http://xml.apache.org/axis/}hostname',
'_class' => 'usage',
'_msgid' => 'cannot find element or attribute `{name}\'',
'_join' => ' '
}, 'Log::Report::Message' )
}, 'Log::Report::Exception' )
],
'decode_errors' => bless( {
'exceptions' => [
${$VAR1}->{'errors'}->[0]
],
'format_reason' => sub { "DUMMY" },
'needs' => [
'NOTICE',
'WARNING',
'MISTAKE',
'ERROR',
'FAULT',
'ALERT',
'FAILURE',
'PANIC'
],
'mode' => 0,
'name' => 'try',
'locale' => undef,
'filters' => [],
'charset_enc' => sub { "DUMMY" },
'died' => bless( {
'report_opts' => ${$VAR1}->{'errors'}->[0]->{'report_opts'},
'reason' => 'ERROR',
'message' => bless( {
'name' => '{http://xml.apache.org/axis/}hostname',
'_domain' => 'xml-compile',
'_expand' => 1,
'_msgid' => 'cannot find element or attribute `{name}\'',
'_join' => ' ',
'_class' => 'usage',
'where' => '{http://xml.apache.org/axis/}hostname'
}, 'Log::Report::Message' )
}, 'Log::Report::Exception' ),
'type' => 'TRY'
}, 'Log::Report::Dispatcher::Try' ),
'parse_elapse' => '0.000815153121948242',
'connect_elapse' => '0.416240930557251',
'stringify_elapse' => '9.39369201660156e-05',
'response_dom' => bless( do{\(my $o = '34461135680')}, 'XML::LibXML::Document' ),
'http_response' => bless( {
'_protocol' => 'HTTP/1.1',
'_content' => '<?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><soapenv:Fault><faultcode xmlns:ns1="http://www.telefoncia.de/kts">ns1:10002</faultcode><faultstring>ARERR [10002] Could not transmit data to TDe (See Error Queue for detailed information). (User \'XXXXXX\' not found)</faultstring><detail><ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">solr-663</ns2:hostname></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>',
'_rc' => 500,
'_headers' => bless( {
'connection' => 'close',
'client-response-num' => 1,
'set-cookie' => 'BIGipServerticketing_preprod_portal_telefonica_de=871622410.20480.0000; path=/',
'date' => 'Wed, 18 Dec 2013 13:24:24 GMT',
'client-ssl-cert-issuer' => '/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)10/CN=VeriSign Class 3 Secure Server CA - G3',
'client-ssl-cipher' => 'RC4-SHA',
'client-peer' => '195.71.84.137:443',
'::std_case' => {
'client-response-num' => 'Client-Response-Num',
'set-cookie' => 'Set-Cookie',
'client-ssl-cert-issuer' => 'Client-SSL-Cert-Issuer',
'client-ssl-cipher' => 'Client-SSL-Cipher',
'client-peer' => 'Client-Peer',
'client-warning' => 'Client-Warning',
'client-date' => 'Client-Date',
'client-ssl-cert-subject' => 'Client-SSL-Cert-Subject',
'client-transfer-encoding' => 'Client-Transfer-Encoding',
'client-ssl-socket-class' => 'Client-SSL-Socket-Class'
},
'client-date' => 'Wed, 18 Dec 2013 13:24:25 GMT',
'content-type' => 'text/xml;charset=utf-8',
'client-ssl-cert-subject' => '/C=DE/ST=Bavaria/L=Munich/O=Telefonica Germany GmbH und Co. OHG/CN=*.preprod.portal.telefonica.de',
'client-transfer-encoding' => [
'chunked'
],
'client-ssl-socket-class' => 'IO::Socket::SSL'
}, 'HTTP::Headers' ),
'_msg' => 'Internal Server Error',
}, 'HTTP::Response' ),
'encode_elapse' => '0.000969171524047852',
'elapse' => '0.420204162597656',
'transport_elapse' => '0.417150020599365',
'http_request' => ${$VAR1}->{'http_response'}->{'_request'},
'decode_elapse' => '0.00208497047424316',
'start' => '1387373064.60923',
'transport_start' => '1387373064.6102'
}, 'XML::Compile::SOAP::Trace' );
Usually I'm quite good at figuring out why it bombs out, but this has
me puzzled - what "{name}" is it looking for, and why?
Installed versions:
p5-XML-Compile-1.40
p5-XML-Compile-Cache-1.00
p5-XML-Compile-SOAP-2.38
p5-XML-Compile-Tester-0.90
p5-XML-LibXML-2.0107,1
libxml2-2.8.0_3
(on FreeBSD 9, if that matters)
thanks!
Gert Doering
-- NetMaster
--
have you enabled IPv6 on something today...?
SpaceNet AG Vorstand: Sebastian v. Bomhard
Joseph-Dollinger-Bogen 14 Aufsichtsratsvors.: A. Grundner-Culemann
D-80807 Muenchen HRB: 136055 (AG Muenchen)
Tel: +49 (0)89/32356-444 USt-IdNr.: DE813185279
More information about the Xml-compile
mailing list