我有一个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);
确实有帮助,但这不是我想要返回的......: - )