Home » Web Services » SOAP » Bug #2255
Generated WSDL doesn't containt "empty" parameters
Details
| Submitted | 2004-08-30 23:47 UTC |
|---|---|
| From | ivoras at fer dot hr |
| Assigned | yunosh |
| Status | Bogus |
| Package | SOAP |
| PHP Version | Irrelevant |
| OS | all |
| Roadmaps | (Not assigned) |
Comments
[2004-08-30 23:47 UTC] ivoras at fer dot hr
Description:
------------
I think I found a bug that causes incompatibility with Mono/.net web services library. There are <message> tags missing in the generated WSDL code when the method is declared (in the $__dispatch_map) as not accepting any parameters.
(0.8RC3)
Reproduce code:
---------------
My (test) service contains these methods:
$this->__dispatch_map['adder'] = array(
'in' => array('num1'=>'int', 'num2'=>'int'),
'out' => array('result'=>'int'),
'alias' => 'add'
);
$this->__dispatch_map['set_state'] = array(
'in' => array('num'=>'int'),
'out' => array()
);
$this->__dispatch_map['get_state'] = array(
'in' => array(),
'out' => array('result'=>'int')
);
At the end of the generated WSDL, the message tags are:
<message name="adderRequest">
<part name="num1" type="xsd:int" />
<part name="num2" type="xsd:int" />
</message>
<message name="adderResponse">
<part name="result" type="xsd:int" />
</message>
<message name="set_stateRequest">
<part name="num" type="xsd:int" />
</message>
<message name="set_stateResponse" />
<message name="get_stateResponse">
<part name="result" type="xsd:int" />
</message>
E.g. there's missing a "get_stateRequest" message, though it is listed in the definitions/portType/operation/input|output tags. Shouldn't there be a
<message name="get_stateRequest"/>
tag? I think it's causing the (client) library to misinterpret the number of parameters the get_state() method needs (it the method needs 1 parameter, and actually it wants none).
Expected result:
----------------
<message name="adderRequest">
<part name="num1" type="xsd:int" />
<part name="num2" type="xsd:int" />
</message>
<message name="adderResponse">
<part name="result" type="xsd:int" />
</message>
<message name="set_stateRequest">
<part name="num" type="xsd:int" />
</message>
<message name="set_stateResponse" />
<message name="get_stateResponse">
<part name="result" type="xsd:int" />
</message>
<message name="get_stateRequest"/>
Actual result:
--------------
<message name="adderRequest">
<part name="num1" type="xsd:int" />
<part name="num2" type="xsd:int" />
</message>
<message name="adderResponse">
<part name="result" type="xsd:int" />
</message>
<message name="set_stateRequest">
<part name="num" type="xsd:int" />
</message>
<message name="set_stateResponse" />
<message name="get_stateResponse">
<part name="result" type="xsd:int" />
</message>