Perl Pod :: WSDL: неверный тип возврата - PullRequest
1 голос
/ 19 марта 2012

У меня проблема с Perl-модулем Pod :: WSDL, но я пока не нашел ответа ... Я использую такой метод:

=pod
=begin WSDL

_DOC
Method hopefully returning a string

 _IN parameter1 $string     The first STRING parameter
 _RETURN $string            Returns a string

=end WSDL
=cut

sub go {
 my ($this, $parameter1) = @_;
 return($parameter1);
}

Проблема в следующем: вызов этого методасо строкой (скажем:

go("abc");

) все в порядке.

Вызов его со значением, которое является числом (скажем:

go("123");

),выдает тип возврата «xsd: int» вместо «xsd: string», как и следовало ожидать от «_RETURN $ string» ... Это полный построенный SOAP-конверт, если он может помочь:

<?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><goResponse xmlns="http://192.168.10.21/TestService"><s-gensym3 xsi:type="xsd:int">1</s-gensym3></goResponse></soap:Body></soap:Envelope>


Возвращение:
return("" . $parameter1);

не помогает.Возвращая что-то вроде этого:

return(" " . $parameter1);

действительно помогает, но я не хочу возвращаться ...: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...