Edit report at http://bugs.php.net/bug.php?id=50675&edit=1

 ID:                 50675
 Comment by:         kayapo at molnaristvan dot eu
 Reported by:        margaritisz dot oresztesz at dotroll dot hu
 Summary:            SoapClient can't handle object references correctly.
 Status:             Open
 Type:               Bug
 Package:            SOAP related
 Operating System:   Linux
 PHP Version:        5.2.12
 Block user comment: N
 Private report:     N

 New Comment:

I use PHP 5.3.5 (from backports) in Debian GNU/Linux 5.0.7 Lenny. My
resoults:



PHP SOAP client with Apache2 http request

=========================================

kayapo@ponyfarm:~$ wget http***kayapo.dev.molnaristvan.eu/client.php -O
-

--2011-01-23 10:56:44--  http***kayapo.dev.molnaristvan.eu/client.php

kayapo.dev.molnaristvan.eu feloldása… 192.168.69.60

Csatlakozás a következőhöz:
kayapo.dev.molnaristvan.eu[192.168.69.60]:80… kapcsolódva.

HTTP kérés elküldve, várakozás válaszra… 200 OK

Hossz: 682 [text/html]

Mentés ide: „STDOUT”



 0% [                                                                   
                                                                        
                                                       ] 0          
--.-K/s              --- test ---

REQUEST: 

<?xml version="1.0" encoding="UTF-8"?>

<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http***schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:test><firstUser
id="ref1"><userId>1</userId><userName>username</userName></firstUser><firstUser
href="#ref1"/></SOAP-ENV:test></SOAP-ENV:Body></SOAP-ENV:Envelope>



RESPONSE MSG: 

<?xml version="1.0" encoding="UTF-8"?>

<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http***schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:testResponse><response/></SOAP-ENV:testResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>



RESPONSE: 

object(User)#3 (2) {

  ["userId":"User":private]=>

  NULL

  ["userName":"User":private]=>

  NULL

}

100%[===================================================================================================================================================================================================>]
682         --.-K/s   idő 0s     



2011-01-23 10:56:44 (115 MB/s) --  kiírva a szabványos kimenetre
[682/682]



PHP SOAP client from command line

=================================

kayapo@www:~/workspace/site/frontend$ php client.php                    
                                                                        
                                                                        
                  

--- test ---                                                            
                                                                        
                                                                        
                  

REQUEST:                                                                
                                                                        
                                                                        
                  

<?xml version="1.0" encoding="UTF-8"?>                                  
                                                                        
                                                                        
                  

<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http***schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:test><firstUser
id="ref1"><userId>1</userId><userName>username</userName></firstUser><firstUser
href="#ref1"/></SOAP-ENV:test></SOAP-ENV:Body></SOAP-ENV:Envelope>      
                                                                        
                                                                        
                                                        

                                                                        
                                                                        
                                                                        
                  

RESPONSE MSG:                                                           
                                                                        
                                                                        
                  

<?xml version="1.0" encoding="UTF-8"?>                                  
                                                                        
                                                                        
                  

<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http***schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:testResponse><response/></SOAP-ENV:testResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
                                                 

                                                                        
                                                                        
                                                                        
                  

RESPONSE:                                                               
                                                                        
                                                                        
                  

object(User)#3 (2) {                                                    
                                                                        
                                                                        
                  

  ["userId":"User":private]=>                                           
                                                                        
                                                                        
                  

  NULL

  ["userName":"User":private]=>

  NULL

}


Previous Comments:
------------------------------------------------------------------------
[2011-01-23 00:10:52] bulk at janoszen dot hu

Confirmed in PHP 5.3.4, still the same bug. The only fix for us is
porting the SOAP library from 5.2.0, which has other, more manageable
bugs.

------------------------------------------------------------------------
[2010-07-06 07:20:53] bulk at janoszen dot hu

Is somebody looking into this?

------------------------------------------------------------------------
[2010-01-15 12:05:15] margaritisz dot oresztesz at dotroll dot hu

Package on the previous link is damaged.



Source code can be found at:

http://code.dotroll.com/files/bugreports/php-50675-soaprefs/soap.tar.gz

------------------------------------------------------------------------
[2010-01-13 13:53:38] srina...@php.net

the client.php that you attached is tar.gz of the same server side code.


pl.attach / provide appropriate client reproduce code 

------------------------------------------------------------------------
[2010-01-06 08:46:33] margaritisz dot oresztesz at dotroll dot hu

Description:
------------
When sending the same object multiple times in a SOAP call, SoapClient
replaces the object with a href='..' object reference. However the
client generates the request envelope with an incorrect parameter name,
so the server does not get the referenced object.

Reproduce code:
---------------
Sources of a simple server and client could be found at the following
URL: http://charlie.extra.hu/php-soap/soap.tar.gz



If I run client.php, it gets back an object filled with null parameters.
It should recieve the first object sent to the server.

If I change the reference's parameter name to 'secondUser', the SOAP
response includes the correct object.

Expected result:
----------------
Expected the following soap envelope to be sent:



<SOAP-ENV:test>

  <firstUser id="ref1">

    <userId>1</userId>

    <userName>user</userName>

  </firstUser>

  <secondUser href="#ref1"/>

</SOAP-ENV:test>

Actual result:
--------------
Got this request:



<SOAP-ENV:test>

  <firstUser id="ref1">

    <userId>1</userId>

    <userName>user</userName>

  </firstUser>

  <firstUser href="#ref1"/>

</SOAP-ENV:test>


------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=50675&edit=1

Reply via email to