В качестве клиента у меня есть код ниже:
my $soap = SOAP::Lite
-> uri('$uri_address')
-> on_action( sub { join '/', '$uri_address', $_[1] } )
-> proxy('$url_address');
my $method = SOAP::Data->name('MyMethod')
->attr({xmlns => '$uri_address'});
#The parameters are held in @params
my @params = ( SOAP::Data->name(xmlData => $xml_string));
my $result = $soap
->soapversion('1.2')
->call($method => @params);
i f ($result->fault)
{
print $result->faultstring;
}
else
{
print $result->result;
}
Я использовал +trace=>all
, и в логе я получил:
SOAP::Transport::new: ()
SOAP::Serializer::new: ()
SOAP::Deserializer::new: ()
SOAP::Parser::new: ()
SOAP::Lite::new: ()
SOAP::Transport::HTTP::Client::new: ()
SOAP::Data::new: ()
SOAP::Data::new: ()
SOAP::Lite::call: ()
SOAP::Serializer::envelope: ()
SOAP::Serializer::envelope: SOAP::Data=HASH(0x35bb7f4) SOAP::Data=HASH(0x35bba94)
SOAP::Data::new: ()
SOAP::Data::new: ()
SOAP::Data::new: ()
SOAP::Data::new: ()
Element 'xmlData' can't be allowed in valid XML message. Died. at C:/Perl/site/lib/SOAP/Lite.pm line 1412.
SOAP::Lite::DESTROY: ()
SOAP::Serializer::DESTROY: ()
SOAP::Data::DESTROY: ()
SOAP::Data::DESTROY: ()
SOAP::Data::DESTROY: ()
SOAP::Data::DESTROY: ()
SOAP::Data::DESTROY: ()
SOAP::Data::DESTROY: ()
SOAP::Transport::DESTROY: ()
SOAP::Transport::HTTP::Client::DESTROY: ()
SOAP::Deserializer::DESTROY: ()
SOAP::Parser::DESTROY: ()
У кого-нибудь есть решение?
Заранее спасибо!