AW: [Xml-compile] XML::Compile::WSDL11 strange error state

Michael Ludwig m.ludwig at epages.com
Thu Feb 23 09:03:50 GMT 2012


> Von: Brian E. Lozier

> ($r, $trace) = $wsdl->call('GetOrderList',
>     accountID => $account_id,
>     orderCriteria => {
>         OrderCreationFilterBeginTimeGMT => $begin_time,
>         OrderCreationFilterEndTimeGMT   => $end_time,
>         StatusUpdateFilterBeginTimeGMT  => $begin_time,
>         StatusUpdateFilterEndTimeGMT    => $end_time,
>         JoinDateFiltersWithOr           => 1,
>         PageNumberFilter                => 1,
>         PageSize                        => 100,
>         OrderStateFilter                => 'Active',
>     },
>     %auth,
> );
> 
> warn Dumper($trace);
> warn Dumper($r);

Take a look at:

https://metacpan.org/module/XML::Compile::SOAP::Trace

You can do: $trace->printErrors(*STDERR). All the methods listed on that
page are for X::C::S::Trace objects. Try adding, for diagnostics:

$trace->printRequest(*STDERR, pretty => 1);
$trace->printResponse(*STDERR, pretty => 1);

>                             'message' => bless( {
>                                                   '_prepend' => 'decode
> error: ',
>                                                   'name' =>
> 'xxxOrderStatus',
>                                                   'path' =>
> 'xxxGetOrderListResponse/GetOrderListResult/ResultData/OrderResponseItem',
>                                                   '_msgid' => 'element
> `{name}\' not processed at {path}',
>                                                   '_expand' => 1,
>                                                   '_domain' => 'xml-
> compile',
>                                                   '_class' => 'misfit'
>                                                 }, 'Log::Report::Message' )
>                           }, 'Log::Report::Exception' )
>                  ],

So does the response contain those xxxOrderStatus elements? Doesn't look
right. Maybe someone made a change to the service implementation that
they didn't mean to go live. I think your interpretation of the error
messsage is correct.

Michael

> I think it's trying to tell me that the response doesn't match the format
> specified in the wsdl file (like, it couldn't find "xxxOrderStatus" in the path
> "xxxGetOrderListResponse/GetOrderListResult/ResultData/OrderResponseItem")
> but I pulled the XML out of the response and parsed it with XML::Simple and
> by hand in a text editor and it seems like the returned XML is valid and
> matches the description in the WSDL.  I'm a beginner with SOAP so it's
> possible I'm missing something.  Is there another explanation?  What else
> can I provide to help debug this?
> 
> Also to be clear, every other SOAP call I've made with this provider has
> worked well through this module, so it's not a systemic problem.
> 
> Thanks,
> Brian



More information about the Xml-compile mailing list