[Xml-compile] parsing SOAP Faults

DEIGNAN Ciaran C.DEIGNAN at rsd.com
Wed Dec 18 13:38:17 GMT 2013


Hi,

The XML in the reply looks like a login failure.
It also says to check the logs on the server, that's probably a good idea ;)

The HTTP request got a return-code of 500 - application error, so the perl side probably just gives up immediately.

Hope this helps,

Ciaran Deignan
RSD Open Systems Support

-----Original Message-----
From: Gert Doering [mailto:gert at space.net] 
Sent: mercredi 18 décembre 2013 14:33
To: xml-compile at lists.scsys.co.uk
Subject: [Xml-compile] parsing SOAP Faults

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

_______________________________________________
Xml-compile mailing list
Xml-compile at lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/xml-compile



More information about the Xml-compile mailing list