I’m using Zend_Soap_Client object for sending a soap request to another application here is the format of the XML that it’s sending to the server:
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="urllocation" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://www.w3.org/2003/05/soap-encoding"><env:Body><ns1:isAccountActive env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"><param0 xsi:type="xsd:string">thisisatest</param0></ns1:isAccountActive></env:Body></env:Envelope>
I’m using it on the other SOAP servers that I have and seems to work fine but one of the server returned a response “Invalid XML” that is why I’m really wondering why it won’t work on that server alone. Any ideas would be greatly appreciated.
Additional Details:
I’ve tried to commentout the code that calls the method from the Server here is the code:
$client = new Zend_Soap_Client(null,
array(
'uri'=>'http://'.$user->customconfigs['alumniuri'],
'encoding'=>'UTF-8',
'location'=>'http://'.$user->customconfigs['alumnilocation']
)
);
echo "Location: {$user->customconfigs['alumnilocation']} - uri: {$user->customconfigs['alumniuri']}";
$alumniactive = $client->isAccountActive($token);
upon commenting out:
$alumniactive = $client->isAccountActive($token);
the error disappeared.This is the same codes from my other applications and it’s working fine from there.
After a long search for the answer to this question I finally found the problem… this code is actually located on a joomla component which I was using the uri same as what I have from the location that would include a character “&” which is illegal on xml standards removing these character from my xml will then cause the SOAP server to accept the request as valid. 🙂