2012-02-23 93 views
0

我使用Zend_Soap_Client对象发送SOAP请求到这里的另一个应用是,它发送到服务器的XML的格式:我使用它的SOAP返回无效的XML响应

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

其它SOAP服务器,我已经和似乎很好地工作,但服务器的一个响应返回“无效的XML”这就是为什么我真的不知道为什么它不会单独该服务器上运行。任何想法将不胜感激。

其他细节

我试图commentout调用从这里服务器的方法的代码是代码:

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

在注释掉:

$alumniactive = $client->isAccountActive($token); 

错误消失。这是从我的其他应用程序相同的代码,它从那里工作正常。

+0

也许这个问题更多的是关于服务器的,如果所有的人工作得很好? )有问题的服务器是什么,它可以与任何其他客户一起使用吗? – raina77ow 2012-02-23 23:47:57

+0

是的,它在服务器上更多,并且所有其他服务器都使用相同的代码。出于安全目的,我无法在此处发布服务器位置,但在我制作的所有其他服务器上都使用了相同的逻辑。也许在我发送的XML中有任何设置或部分可能导致问题,我真的试图找出它可能来自哪里。 – 2012-02-23 23:49:55

+0

@ raina77ow你的问题是否会处置过程中对其他客户的工作,是它的工作只是这一次我真的很沮丧跟踪哪里这个问题可以从未来。 – 2012-02-23 23:54:35

回答

0

经过长时间的搜寻了这个问题的答案后,我终于发现了问题...此代码实际上是位于一个Joomla组件,它是我使用URI一样我从将包括一个字符的位置有“&”这对xml标准是非法的,从我的xml中删除这些字符将导致SOAP服务器接受该请求为有效。 :)