#!/usr/local/bin/perl #CLIENT use strict; use warnings; use SOAP::Lite +trace => qw(debug); use MIME::Base64; my $HOST = "http://localhost/perl/soap-dbi.pl"; my $NS = "urn:Delivery"; my $MsgHdr = "urn:MsgHeader"; #Data to be added to the request my (@data) = ( #Common MessageHeader SOAP::Data->name(MessageHeader => { ( AgreementId => "urn:xxx-xxx:::" ), ( ConversationId => "20050904-13:30:03.469-857" ), ( Sequence => { Id => "What id is this", Number => "123", Total => "6" } ), ( Service => { type => "service.type. What servicetype is this?" } ), ( Action => "Problem Submit" ), ( MessageData => { MessageId => "20050904-13:30:03.469-8572\@xxx.xxx.xxx", Timestamp => SOAP::Utils::format_datetime(localtime), RefToMessageId => "Which reference is this", TimeToLive => SOAP::Utils::format_datetime(localtime) } ), ( Description => "This is the message header" ), ( ErrorList => { Error => { Description => "Error Description", codeContent => "code content", errorCode => "Error Code", severity => "severity.type", location => "error location" } } ), ( highestSeverity => "severity.type" ), ( id => "Which id is this" ) } )->uri($MsgHdr)->prefix(''), ); #Enable fault management globally use SOAP::Lite on_fault => sub { my($soap, $res) = @_; eval { die ref $res ? $res->faultstring : $soap->transport->status }; return ref $res ? $res : new SOAP::SOM; }; #print $soap->fault ? $soap->faultstring. "\n" : $soap->result; my $soap = SOAP::Lite -> proxy($HOST) -> uri($NS); #my $res = $soap->byName(@headers,@data); my $res = $soap->GetbyName(@data); #print $soap->retrieveDocument->result; print $res->fault ? $res->faultstring. "\n" : $res->result;