Hi all,
I have a problem with this PERL class.
I need to call a method from a web service. This is the perl code:
use SOAP::Lite +trace=>debug;
$result = SOAP::Lite
-> service('
http://10.129.237.43:7030/dommPortalWEB/PortalStructureService?WSDL')-> getContextUrlFromBookmark('news',0);
very easy....
well this is the envelope generated:
< soap:Envelope
soap:encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="
http://schemas.xmlsoap.org/soap/envelope/" xmlns:s2="
http://schemas.xmlsoap.org/wsdl/soap/" 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" xmlns:s1="
http://www.javac.it/portalstructure" xmlns:s0="
http://schemas.xmlsoap.org/wsdl/">< soap:Body>
< s1:getContextUrlFromBookmark>
< bookmark xsi:type="xs:string">news< /bookmark>
< validate xsi:type="xs:boolean">false< /validate>
< /s1:getContextUrlFromBookmark>
< /soap:Body>
< /soap:Envelope>
the web service return with a fault message:
error: com.bea.xbean.common.InvalidLexicalValueException: Can't resolve prefix: xs
the problem seems to be the xs:string declaration.
when I tried with soapUI (an UI to interrogate web services) it shows up the same error. But when I modify manually the envelope and remove the type attribute it works fine.
< bookmark>news< /bookmark>
< validate>false< /validate>
It works also with the xsd type:
< bookmark xsi:type="xsd:string">news< /bookmark>
< validate xsi:type="xsd:boolean">false< /validate>
The question is:
How could I deal with this problem and force SOAP::Lite to remove the type attribute (or maybe change it to xsd)?
Many thanks in advance...