[ 
https://issues.apache.org/jira/browse/CXF-939?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christian Pfeifhofer updated CXF-939:
-------------------------------------

    Attachment: bug.wsdl

> wsdl defining two different operations on the same port using the same 
> messages lead to wsdl2java producing wrong code instead of an error message
> --------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-939
>                 URL: https://issues.apache.org/jira/browse/CXF-939
>             Project: CXF
>          Issue Type: Bug
>          Components: Tooling
>    Affects Versions: 2.0
>            Reporter: Christian Pfeifhofer
>         Attachments: bug.wsdl
>
>
> A WSDL defining two operations on the same port with different names but 
> using the same messages for request and response makes wsdl2java produce a 
> port interface class with both operations, but with wrong runtime behavior. 
> The request of a client invoking the second operation will be routed to the 
> implementation of the first operation at the service provider site.
> This is the code generated:
> @WebService(targetNamespace = "http://bugs.cxf/services/bug1";, name = 
> "myBug1Port")
> public interface MyBug1Port {
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @WebResult(targetNamespace = "http://bugs.cxf/services/bug1";, partName = 
> "parameters", name = "myBug1Response")
>     @WebMethod
>     public cxf.bugs.services.bug1.ResponseDataType myBug2(
>         @WebParam(targetNamespace = "http://bugs.cxf/services/bug1";, partName 
> = "parameters", name = "myBug1")
>         cxf.bugs.services.bug1.RequestDataType parameters
>     );
>     @ResponseWrapper(targetNamespace = "http://bugs.cxf/services/bug1";, 
> className = "cxf.bugs.services.bug1.ResponseDataType", localName = 
> "myBug1Response")
>     @RequestWrapper(targetNamespace = "http://bugs.cxf/services/bug1";, 
> className = "cxf.bugs.services.bug1.RequestDataType", localName = "myBug1")
>     @WebResult(targetNamespace = "http://bugs.cxf/services/bug1";, name = 
> "myOutputString")
>     @WebMethod
>     public java.lang.String myBug1(
>         @WebParam(targetNamespace = "http://bugs.cxf/services/bug1";, name = 
> "myInputString")
>         java.lang.String myInputString
>     );
> }
> The jaxws ri will produce an error message instead, as two operations with 
> equal message names are illegal at the same port:
> Non unique body parts! In a port, operations must have unique operation 
> signaure on the wire for successful dispatch. In port myBug1, Operations 
> "myBug2" and "myBug1" have the same request body block 
> {http://bugs.cxf/services/bug1}myBug1

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to