Perl Pod :: WSDL:错误的返回类型

时间:2012-03-19 15:02:22

标签: perl soap wsdl

我有一个Pod :: WSDL perl模块的问题但没有找到答案,但...... 我使用这样的方法:

=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 Envelop构建,如果它可以帮助:

<?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);

确实有帮助,但这不是我想要返回的......: - )

0 个答案:

没有答案