#49169 [Com]: SoapServer calls wrong function, although "SOAP action" header is correct
| From: | robin dot harvey at chaptereight dot com | Date: | Wed, 23 Sep 2009 14:51:49 +0000 |
| Subject: | #49169 [Com]: SoapServer calls wrong function, although "SOAP action" header is correct | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-142773@lists.php.net to get a copy of this message | ||
ID: 49169
Comment by: robin dot harvey at chaptereight dot com
Reported By: jeroen at asystance dot nl
Status: Verified
Bug Type: SOAP related
Operating System: linux
PHP Version: 5.2SVN-2009-08-05 (snap)
New Comment:
@bigdan at gmail dot com
The workaround I'm using is to set up my WSDL so that all methods have
a unique input type signature. Of course this leads to an ugly and
unnecessarily bloated WSDL, but there's not much other choice (other
than WS02 PHP, that is....)
Previous Comments:
------------------------------------------------------------------------
[2009-09-18 14:10:39] jeroen at asystance dot nl
bigdan, I think you left out one option: this _is_ a bug.
Using RPC style _is_ a workaround, but one that doesn't always work.
The real problem is that SOAP should use the SOAPAction header to
determine which operation to call, not guess based on parameters (which
is what it looks to be doing now).
While the comment you refer to does point out this very issue and
predates this bug, that doesn't mean it's not a bug. Rather the
commenter could (and should?) have filed this as a bug more than a year
ago.
------------------------------------------------------------------------
[2009-09-18 13:51:18] bigdan at gmail dot com
Nevermind on the workaround - either this is not a bug, this issue was
noticed well before this bug, or the comments here are entirely
unrelated though they correct the issue for me:
http://us3.php.net/manual/en/soapserver.handle.php#81750
TLDR: Instead of <soap:binding style="document you need to use
<soap:binding style="rpc
------------------------------------------------------------------------
[2009-09-18 13:45:30] bigdan at gmail dot com?
Is anyone aware of a workaround? I am having this issue on Ubuntu
Hardy.
Thanks
------------------------------------------------------------------------
[2009-09-09 19:27:50] sjoerd@php.net
Could reproduce. Even though the soap action looked as follows:
SOAPAction: "operation2"
Operation 1 was called.
------------------------------------------------------------------------
[2009-08-20 15:18:33] robin dot harvey at chaptereight dot com
Hi,
This bug is affecting me too, and I've noticed that it's only the input
parameters which trigger the bug - 2 functions can have the same output
and they are treated individually.
Also, it seems that it's the order of the wsdl:binding/wsdl:operation
declarations which makes a difference, swapping the
wsdl:portType/wsdl:operation or wsdl:message ordering does not trigger
the bug.
HTH
--Robin
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/49169
--
Edit this bug report at http://bugs.php.net/?id=49169&edit=1