Re: SOAP 0.8.1 -> 0.9.1
| From: | Norbert Mocsnik | Date: | Wed, 21 Sep 2005 00:09:25 +0000 |
| Subject: | Re: SOAP 0.8.1 -> 0.9.1 | ||
| References: | 1 | Groups: | php.pear.general |
| Request: | Send a blank email to pear-general+get-21061@lists.php.net to get a copy of this message | ||
Rob Agar wrote:
I have just upgraded PEAR::Soap from 0.8.1 to 0.9.1, and it's broken my client code :( The error is "No Deserializer found to deserialize a ':username' using encoding style 'null'. [java.lang.IllegalArgumentException]". "username" is a simple string, so the server shouldn't have any problem. Anyone know what changed between 0.8.1 and 0.9.1, or how I can fix it?Currently the only solution I've found is to open SOAP/Client.php manually, and go to line 549: 549: // Serialize the message. 550: $this->_section5 = (isset($this->__options['use']) &&
551: $this->__options['use'] == 'literal');552: 553: // Insert the following line here: 554: $this->_section5 = true; The SOAP output should look like: <filter xsi:type="xsd:boolean">true</filter> but without lines 553 & 554 (see above) it generates: <filter>true</filter> Lines 553 & 553 solved my problem when working with google through this package. Try if it works. A better solution would be to call $soap_client->setOpt('use', 'literal'); but a) this doesn't append the option to the internal option array as it should for some weird reason b) even if it applied, it'd be overwritten by other parts of the code (not sure) I don't have more time to investigate this now so I'll live with the forcing instead. Let me know how it goes for you. -- Norbert Mocsnik http://norbert.mocsnik.hu/