|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #42692 Procedure 'int1' not present with doc/lit SoapServer
Submitted: 2007-09-18 03:26 UTC Modified: 2007-11-13 15:10 UTC
Avg. Score:5.0 ± 0.0
Reproduced:4 of 4 (100.0%)
Same Version:1 (25.0%)
Same OS:2 (50.0%)
From: michael dot tutty at gmail dot com Assigned: dmitry (profile)
Status: Closed Package: SOAP related
PHP Version: 5CVS-2007-09-18 (snap) OS: SuSE 10.2
Private report: No CVE-ID: None
 [2007-09-18 03:26 UTC] michael dot tutty at gmail dot com
Calling AddNumbers on the sample SOAP server class yields the familiar "Procedure 'xxx' not present" exception when calling $server->handle(). 

Calling the reflectString(string) method works. It seems as though the number of parameters makes a difference.

This seems like a pretty big problem, as it prevents PHP from acting as a WS-I-compliant service to .NET and Java-based consumers.

I tested with this service class as part of verifying bug 42086. It is not fixed in this example. Since I'm not the owner of 42086, I am submitting this report instead.

Reproduce code:

Expected result:
The SoapServer class should recognize the method being called.

Actual result:
The SoapServer class appears to look for an implementation method that matches the name of the first Xml tag in the SOAP envelope. I think this would be correct for rpc/encoded usage, but not for doc/lit.


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2007-09-21 02:49 UTC] deathemperor at gmail dot com
Just found this bug yesterday from my co-worker. Fixed it today by changing the filename which I think it's caching problem. You can avoid changing filename by setting soap.wsdl_cache_enabled = 1 using ini_set().

Hope this helps.
 [2007-10-18 11:29 UTC]
So the bug has already fixed? contains nothing, so I cannot look into it.

 [2007-10-18 13:29 UTC] michael dot tutty at gmail dot com
No, it hasn't, and I can't find the sample code I posted to pastebin. You can create a simple doc/lit web service with a function AddNumbers(int one, int two) that returns one + two.

Using the SOAPClient class should return the error. Not that this seems to be a boundary condition issue, since a function with no parameters or one parameter will work.
 [2007-11-01 12:10 UTC]
Sorry, but I am not able to fix the bug without reprodusable case.
 [2007-11-08 22:18 UTC] rruckley at gmail dot com
I also have this same error and its driving me batty. I have four other operations defined in my WSDL file with single parameters and they all work. This is the only operation with two parameters and it does not.
It complains about procedure 'peid' not present yet this is the name of the first parameter of the function so it is obviously confused. Creating a function called 'peid' also makes no difference.
My WSDL file is

I can paste my code if you wish.
 [2007-11-09 01:00 UTC] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
 [2007-11-13 15:10 UTC]
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
Thank you for the report, and for helping us make PHP better.

PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Mon Jul 15 09:01:28 2024 UTC