#45521 [Opn->Fbk]: SoapClient is not working with wsi compliant web services
| From: | felipe@php.net | Date: | Fri, 13 Feb 2009 23:07:40 +0000 |
| Subject: | #45521 [Opn->Fbk]: SoapClient is not working with wsi compliant web services | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-133816@lists.php.net to get a copy of this message | ||
ID: 45521
Updated by: felipe@php.net
Reported By: sanderovich at avaya dot com
-Status: Open
+Status: Feedback
Bug Type: SOAP related
Operating System: *
PHP Version: 5.2.6
New Comment:
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://windows.php.net/snapshots/
Previous Comments:
------------------------------------------------------------------------
[2008-07-15 13:46:55] sanderovich at avaya dot com
Description:
------------
Hello All,
I am trying to use soap php's soap client(version 5.2.6) with axis 1.4.
The axis's wsdl is WSI compliant and doc\literal\wrapped.
The problem is that the soap client does not create the soap body
correctly, e.g it uses SOAP-ENC structures(both on wsdl and on non-wsdl
modes).
For example, the following php structure:
stdClass Object
(
[pagingFilteringSortingParameters] => stdClass Object
(
[startItemIndex] => 0
[endItemIndex] => 34
[filterList] => Array
(
[0] => filterList Object
(
[fieldName] => IPAddress
[fieldValue] => 149
[filterType] => likeFilterType
)
[1] => filterList Object
(
[fieldName] => gatewayType
[fieldValue] => i40
[filterType] => likeFilterType
)
)
)
)
is translated into the following soap body:
<SOAP-ENV:Body>
<ns1:getBranchPartialList>
<pagingFilteringSortingParameters>
<startItemIndex>
0
</startItemIndex>
<endItemIndex>
34
</endItemIndex>
<filterList>
<SOAP-ENC:Struct>
<fieldName>
IPAddress
</fieldName>
<fieldValue>
149
</fieldValue>
<filterType>
likeFilterType
</filterType>
</SOAP-ENC:Struct>
<SOAP-ENC:Struct>
<fieldName>
gatewayType
</fieldName>
<fieldValue>
i40
</fieldValue>
<filterType>
likeFilterType
</filterType>
</SOAP-ENC:Struct>
</filterList>
</pagingFilteringSortingParameters>
</ns1:getBranchPartialList>
</SOAP-ENV:Body>
Instead of the following structure:
<SOAP-ENV:Body>
<ns1:getBranchPartialList
xmlns:ns1="http://xml.avaya.com/im/decm/guiws/07062006">
<pagingFilteringSortingParameters>
<startItemIndex>
0
</startItemIndex>
<endItemIndex>
34
</endItemIndex>
<filterList>
<fieldName>
IPAddress
</fieldName>
<fieldValue>
149
</fieldValue>
<filterType>
likeFilterType
</filterType>
</filterList>
<filterList>
<fieldName>
gatewayType
</fieldName>
<fieldValue>
i40
</fieldValue>
<filterType>
likeFilterType
</filterType>
</filterList>
<sorterList>
<fieldName>
branchName
</fieldName>
<descending>
true
</descending>
</sorterList>
</pagingFilteringSortingParameters>
</ns1:getBranchPartialList>
What i suggest is to add a flag to the soapClient\SoapServer feature
flag that will use the array name instead of SOAP-ENC:Struct. The same
rule should apply for arrays.
If anyone wishes to reproduce this problem, please send an email to
sanderovich@avaya.com and i will send the source codes.
Thanks,
Oren
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=45521&edit=1