NAME

XML::Compile::SOAP::Trace - help displaying trace details.

SYNOPSIS

 my ($answer, $trace) = $call->(%params);
 # now $trace is a XML::Compile::SOAP::Trace

 my $req = $trace->request;   # HTTP message which was sent
 my $res = $trace->response;  # HTTP message received

 my $start = $trace->date;
 my $dura  = $trace->elapse;

 $trace->printTimings;
 $trace->printErrors;
 $trace->printTimings(\*STDERR);
 $trace->printRequest(pretty_print => 1);
 $trace->printResponse;

DESCRIPTION

This help module simplifies user access to the trace data, as produced by a SOAP call (client side).

METHODS

Constructors

XML::Compile::SOAP::Trace->new(%options)

Called by the SOAP call implementation; not for normal users.

Accessors

$obj->date()

Returns the date string which represent the moment that the call was initiated.

$obj->elapse( [$kind] )

Returns the time in seconds (with hires, sub-second detail) of a part of the SOAP communication. Some values may be undef. Elapse without argument will return the total time elapsed.

As KINDs are defined encode (the time required by the translator build by XML::Compile::Schema to translate Perl into an XML::LibXML tree), transport, and decode (from XML::LibXML tree into Perl)>. The transport components are also provided separately, as stringify (by XML::LibXML to convert a tree into text), connect (for the network message exchange by HTTP::Daemon), and parse (parsing answer string into XML)

See printTimings().

example:

 print $trace->elapse('decode');
$obj->error( [$error] )

Often contains an error message, when something went wrong. The message is returned as Log::Report::Exception. Only the first error is returned, use errors() to get all.

[2.31] When an $error is provided, it is added to the internal list of errors. The $error parameter may be a Log::Report::Exception, a Log::Report::Message or a simple string.

$obj->errors()

[2.31] Return all errors, which are Log::Report::Exception objects. See also error().

$obj->request()

Returns the HTTP::Request object used for this SOAP call. This might be quite useful during debugging, because a lot of the processing is hidden for the user... but you may want to see or log what is actually begin send.

$obj->response()

Returns the HTTP::Response object, returned by the remote server. In some erroneous cases, the client library will create an error response without any message was exchanged.

$obj->responseDOM()

Returns the XML::LibXML::Document top node of the response: the parsed text of the content of the received HTTP message.

$obj->start()

Returns the (platform dependent) time value which represent the moment that the call was initiated. See Time::HiRes method time.

Printing

$obj->printErrors( [$fh] )

The filehandle defaults to STDERR.

If you want to see more output, try adding <use Log::Report mode = 3;>>

$obj->printRequest( [$fh], %options )
 -Option      --Default
  pretty_print  0
pretty_print => 0|1|2

Use XML::Compile::Transport::compileClient(xml_format) if you want the messages to be shown readible. The digits reflect XML::LibXML format settings: '0' is unchanged, '1' will show indented formatting, and '2' has even more whitespace in it.

$obj->printResponse( [$fh], %options )
 -Option      --Default
  pretty_print  0
pretty_print => 0|1|2

Use XML::Compile::Transport::compileClient(xml_format) if you want the messages to be shown readible.

$obj->printTimings( [$fh] )

Print an overview on various timings to the selected filehandle.

SEE ALSO

This module is part of XML-Compile-SOAP distribution version 3.28, built on August 01, 2022. Website: http://perl.overmeer.net/CPAN/

LICENSE

Copyrights 2007-2022 by [Mark Overmeer <markov@cpan.org>]. For other contributors see ChangeLog.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://dev.perl.org/licenses/