php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #42086 SoapServer return Procedure '' not present for WSIBasic compliant wsdl
Submitted: 2007-07-24 14:13 UTC Modified: 2007-08-31 09:36 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:1 (100.0%)
Same OS:1 (100.0%)
From: sanderovich at avaya dot com Assigned: dmitry (profile)
Status: Closed Package: SOAP related
PHP Version: 5.2.3 OS: linux
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: sanderovich at avaya dot com
New email:
PHP Version: OS:

 

 [2007-07-24 14:13 UTC] sanderovich at avaya dot com
Description:
------------
When using WSI Basic compliant wsdl, a call to functions without parameters return procedure xxx not found despite the fact that the function exist(they exist both in the wsdl and in the array returned by SoapServer::getFunctions()).
Functions with parameters are being executed correctly.

For example:
A Soap call to : firstFunctionWithoutParam() 
return the following SoapFault:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
  <SOAP-ENV:Fault>
     <faultcode>SOAP-ENV:Server</faultcode>
        <faultstring>Procedure 'firstFunctionWithoutParam' not present
    </faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

despite the fact that the function exist in the return SoapServer::getFunctions()
Array
(
    [0] => firstFunctionWithoutParam
    [1] => secondFunctionWithoutParam
    [2] => firstFunctionClassParam
    [3] => secondFunctionClassParam
)

Soap Data (from $HTTP_RAW_POST_DATA):
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
  <firstFunctionWithoutParam/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Soap data for Soap call with parameters:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Body>
    <firstFunctionClassParam>
        <param>oren</param>
        <vectparam>one</vectparam>
        <vectparam>two</vectparam>
     </firstFunctionClassParam>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Thanks for your help

Reproduce code:
---------------
A zip file file SoapClient\Server can be found in following link
http://myfreefilehosting.com/f/bf039ff168_0.1MB


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2007-08-01 11:10 UTC] dmitry@php.net
I am not able to get code. Link doesn't work. "The file you are requesting is not accesible due to a hardware or ISP problem. Please retry Later".
 [2007-08-15 01:26 UTC] michael dot tutty at gmail dot com
Here's a minimal WSDL that shows the problem: http://pastebin.com/m18b5d1fc

Here's the class file I used to reproduce with the WSDL above: http://pastebin.com/m28bdf0f0

Here's a test client script: http://pastebin.com/m303880eb
 [2007-08-15 01:47 UTC] michael dot tutty at gmail dot com
Also, the zip file referenced by the O.P. is available as of two minutes ago. Must have been a temporary outage.
 [2007-08-15 02:29 UTC] michael dot tutty at gmail dot com
This bug seems to be the root of the problem. Has it been fixed??

http://bugs.php.net/bug.php?id=30302
 [2007-08-15 06:12 UTC] sanderovich at avaya dot com
I believe that there are here two different problems.
The first is that the Soap client does not create the SoapBody correctly for a function without parameters(the SoapBody is empty), that's why my SoapClient includes the following lines:
if ( $parameters == null)
{
  $return = $itc_client->__soapCall($methodName, array(new SoapParam(null, $methodName)), null, $security_header);
			//  $return = $itc_client->__soapCall($methodName, array(), null, $security_header);
		}   

The second problem is in the SoapServer that does recognize functions without parameters.
 [2007-08-15 08:22 UTC] jani@php.net
Dmitry, feedback was given..
 [2007-08-31 09:36 UTC] dmitry@php.net
This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.


 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Nov 21 15:01:30 2024 UTC