You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Peter Liljenberg (JIRA)" <ji...@apache.org> on 2007/11/20 20:45:42 UTC

[jira] Created: (CXF-1223) Client code generates no parameters or return values for WSDL with multiple elements with same name

Client code generates no parameters or return values for WSDL with multiple elements with same name
---------------------------------------------------------------------------------------------------

                 Key: CXF-1223
                 URL: https://issues.apache.org/jira/browse/CXF-1223
             Project: CXF
          Issue Type: Bug
    Affects Versions: 2.0.3
         Environment: Windows, OS X, Linux
            Reporter: Peter Liljenberg
            Priority: Blocker


When generating code with wsdl2java we end up with client code that have no parameters or return values for our methods.

Complete WSDL:
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns:tns="mesh.meshfacade" xmlns:wsr="http://www.openuri.org/2002/10/soap/reliability/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12enc="http://www.w3.org/2003/05/soap-encoding" xmlns:conv="http://www.openuri.org/2002/04/wsdl/conversation/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="mesh.meshfacade">
 <types>
  <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:mesh.meshfacade.vo" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:mesh.meshfacade.vo">
   <xsd:import namespace="java:efsbase.common">
   </xsd:import>
   <xsd:complexType name="CreateMailboxRequest">
    <xsd:complexContent>
     <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseMSISDNRequest">
      <xsd:sequence>
       <xsd:element type="xsd:string" name="domain" minOccurs="1" maxOccurs="1" nillable="true">
       </xsd:element>
      </xsd:sequence>
     </xsd:extension>
    </xsd:complexContent>
   </xsd:complexType>
   <xsd:complexType name="CreateMailboxResponse">
    <xsd:complexContent>
     <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseResponse">
     </xsd:extension>
    </xsd:complexContent>
   </xsd:complexType>
  </xsd:schema>
  <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="mesh.meshfacade" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="mesh.meshfacade">
   <xsd:import namespace="java:mesh.meshfacade.vo">
   </xsd:import>
    <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxRequest" name="createMailbox" nillable="true">
   </xsd:element>
   <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxResponse" name="createMailboxResponse" nillable="true">
   </xsd:element>
  </xsd:schema>
  <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:efsbase.common" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:efsbase.common">
   <xsd:complexType name="EFSBaseMSISDNRequest">
    <xsd:complexContent>
     <xsd:extension base="stns:EFSBaseRequest">
      <xsd:sequence>
       <xsd:element type="xsd:string" name="msisdn" minOccurs="1" maxOccurs="1" nillable="true">
       </xsd:element>
      </xsd:sequence>
     </xsd:extension>
    </xsd:complexContent>
   </xsd:complexType>
   <xsd:complexType name="EFSBaseObject">
   </xsd:complexType>
   <xsd:complexType name="EFSBaseRequest">
    <xsd:complexContent>
     <xsd:extension base="stns:EFSBaseObject">
      <xsd:sequence>
       <xsd:element type="xsd:string" name="userId" minOccurs="1" maxOccurs="1" nillable="true">
       </xsd:element>
      </xsd:sequence>
     </xsd:extension>
    </xsd:complexContent>
   </xsd:complexType>
   <xsd:complexType name="EFSBaseResponse">
    <xsd:complexContent>
     <xsd:extension base="stns:EFSBaseObject">
      <xsd:sequence>
        <xsd:element type="xsd:string" name="transactionId" minOccurs="1" maxOccurs="1" nillable="true">
       </xsd:element>
      </xsd:sequence>
     </xsd:extension>
    </xsd:complexContent>
   </xsd:complexType>
  </xsd:schema>
 </types>
 <message name="createMailbox">
  <part xmlns:partns="mesh.meshfacade" name="createMailboxRequest" element="partns:createMailbox">
  </part>
 </message>
 <message name="createMailboxResponse">
  <part xmlns:partns="mesh.meshfacade" name="result" element="partns:createMailboxResponse">
  </part>
 </message>
 <portType name="MeshFacadePort">
   <operation name="createMailbox">
   <input message="tns:createMailbox">
   </input>
   <output message="tns:createMailboxResponse">
   </output>
  </operation>
 </portType>
 <binding type="tns:MeshFacadePort" name="MeshFacadePort">
   <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
  <operation name="createMailbox">
    <soap:operation style="document" soapAction=""/>
   <input>
     <soap:body use="literal"/>
   </input>
   <output>
     <soap:body use="literal"/>
   </output>
  </operation>
 </binding>
 <service name="MeshFacade">
  <port name="MeshFacadePort" binding="tns:MeshFacadePort">
    <soap:address location="http://localhost/mesh/MeshFacade"/>
  </port>
 </service>
</definitions>


Generated code:
public interface MeshFacadePort {

    @ResponseWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxResponse", localName = "createMailboxResponse")
    @RequestWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxRequest", localName = "createMailbox")
    @WebMethod
    public void createMailbox();
}

Clearly we expected the method to have a parameter and return value. I'm guessing (this has been an issue before CXF-1502) that the problem is that there are 2 elements "createMailbox", one type definition and one method/operation definition. Is this OK according to the WSDL specs or is it a bug in CXF? Other frameworks like Axis can generate a "correct", working client from the WSDL.

Updated WSDL (snippet):
 <portType name="MeshFacadePort">
   <operation name="createMailbox2">
   <input message="tns:createMailbox">
   </input>
   <output message="tns:createMailboxResponse">
   </output>
  </operation>
 </portType>
 <binding type="tns:MeshFacadePort" name="MeshFacadePort">
   <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
  <operation name="createMailbox2">
    <soap:operation style="document" soapAction=""/>
   <input>
     <soap:body use="literal"/>
   </input>
   <output>
     <soap:body use="literal"/>
   </output>
  </operation>
 </binding>

With different names we get the following, more correct code:

public interface MeshFacadePort {

    @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
    @WebResult(targetNamespace = "mesh.meshfacade", partName = "result", name = "createMailboxResponse")
    @WebMethod
    public java.mesh_meshfacade.CreateMailboxResponse createMailbox2(
        @WebParam(targetNamespace = "mesh.meshfacade", partName = "createMailboxRequest", name = "createMailbox")
        java.mesh_meshfacade.CreateMailboxRequest createMailboxRequest
    );
}

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


[jira] Commented: (CXF-1223) Client code generates no parameters or return values for WSDL with multiple elements with same name

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CXF-1223?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12557014#action_12557014 ] 

Daniel Kulp commented on CXF-1223:
----------------------------------

David,

That then falls into rule #2 of section 2.3.1.2 of the JAX-WS spec that states it's only unwrappable if:

(ii) The input message part refers to a global element declaration whose localname is equal to the operation name

By changing it to SubmitRequest, the name no longer matches the operation name, thus, it gets mapped to "bare" mode.






> Client code generates no parameters or return values for WSDL with multiple elements with same name
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CXF-1223
>                 URL: https://issues.apache.org/jira/browse/CXF-1223
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.0.3
>         Environment: Windows, OS X, Linux
>            Reporter: Peter Liljenberg
>            Assignee: Daniel Kulp
>            Priority: Blocker
>             Fix For: 2.1
>
>
> When generating code with wsdl2java we end up with client code that have no parameters or return values for our methods.
> Complete WSDL:
> <?xml version="1.0" encoding="UTF-8"?>
> <definitions xmlns:tns="mesh.meshfacade" xmlns:wsr="http://www.openuri.org/2002/10/soap/reliability/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12enc="http://www.w3.org/2003/05/soap-encoding" xmlns:conv="http://www.openuri.org/2002/04/wsdl/conversation/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="mesh.meshfacade">
>  <types>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:mesh.meshfacade.vo" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:mesh.meshfacade.vo">
>    <xsd:import namespace="java:efsbase.common">
>    </xsd:import>
>    <xsd:complexType name="CreateMailboxRequest">
>     <xsd:complexContent>
>      <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseMSISDNRequest">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="domain" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="CreateMailboxResponse">
>     <xsd:complexContent>
>      <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseResponse">
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>   </xsd:schema>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="mesh.meshfacade" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="mesh.meshfacade">
>    <xsd:import namespace="java:mesh.meshfacade.vo">
>    </xsd:import>
>     <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxRequest" name="createMailbox" nillable="true">
>    </xsd:element>
>    <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxResponse" name="createMailboxResponse" nillable="true">
>    </xsd:element>
>   </xsd:schema>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:efsbase.common" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:efsbase.common">
>    <xsd:complexType name="EFSBaseMSISDNRequest">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseRequest">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="msisdn" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseObject">
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseRequest">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseObject">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="userId" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseResponse">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseObject">
>       <xsd:sequence>
>         <xsd:element type="xsd:string" name="transactionId" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>   </xsd:schema>
>  </types>
>  <message name="createMailbox">
>   <part xmlns:partns="mesh.meshfacade" name="createMailboxRequest" element="partns:createMailbox">
>   </part>
>  </message>
>  <message name="createMailboxResponse">
>   <part xmlns:partns="mesh.meshfacade" name="result" element="partns:createMailboxResponse">
>   </part>
>  </message>
>  <portType name="MeshFacadePort">
>    <operation name="createMailbox">
>    <input message="tns:createMailbox">
>    </input>
>    <output message="tns:createMailboxResponse">
>    </output>
>   </operation>
>  </portType>
>  <binding type="tns:MeshFacadePort" name="MeshFacadePort">
>    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>   <operation name="createMailbox">
>     <soap:operation style="document" soapAction=""/>
>    <input>
>      <soap:body use="literal"/>
>    </input>
>    <output>
>      <soap:body use="literal"/>
>    </output>
>   </operation>
>  </binding>
>  <service name="MeshFacade">
>   <port name="MeshFacadePort" binding="tns:MeshFacadePort">
>     <soap:address location="http://localhost/mesh/MeshFacade"/>
>   </port>
>  </service>
> </definitions>
> Generated code:
> public interface MeshFacadePort {
>     @ResponseWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxResponse", localName = "createMailboxResponse")
>     @RequestWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxRequest", localName = "createMailbox")
>     @WebMethod
>     public void createMailbox();
> }
> Clearly we expected the method to have a parameter and return value. I'm guessing (this has been an issue before CXF-1502) that the problem is that there are 2 elements "createMailbox", one type definition and one method/operation definition. Is this OK according to the WSDL specs or is it a bug in CXF? Other frameworks like Axis can generate a "correct", working client from the WSDL.
> Updated WSDL (snippet):
>  <portType name="MeshFacadePort">
>    <operation name="createMailbox2">
>    <input message="tns:createMailbox">
>    </input>
>    <output message="tns:createMailboxResponse">
>    </output>
>   </operation>
>  </portType>
>  <binding type="tns:MeshFacadePort" name="MeshFacadePort">
>    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>   <operation name="createMailbox2">
>     <soap:operation style="document" soapAction=""/>
>    <input>
>      <soap:body use="literal"/>
>    </input>
>    <output>
>      <soap:body use="literal"/>
>    </output>
>   </operation>
>  </binding>
> With different names we get the following, more correct code:
> public interface MeshFacadePort {
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @WebResult(targetNamespace = "mesh.meshfacade", partName = "result", name = "createMailboxResponse")
>     @WebMethod
>     public java.mesh_meshfacade.CreateMailboxResponse createMailbox2(
>         @WebParam(targetNamespace = "mesh.meshfacade", partName = "createMailboxRequest", name = "createMailbox")
>         java.mesh_meshfacade.CreateMailboxRequest createMailboxRequest
>     );
> }

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


[jira] Assigned: (CXF-1223) Client code generates no parameters or return values for WSDL with multiple elements with same name

Posted by "Bozhong Lin (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1223?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bozhong Lin reassigned CXF-1223:
--------------------------------

    Assignee: Bozhong Lin

> Client code generates no parameters or return values for WSDL with multiple elements with same name
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CXF-1223
>                 URL: https://issues.apache.org/jira/browse/CXF-1223
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.0.3
>         Environment: Windows, OS X, Linux
>            Reporter: Peter Liljenberg
>            Assignee: Bozhong Lin
>            Priority: Blocker
>
> When generating code with wsdl2java we end up with client code that have no parameters or return values for our methods.
> Complete WSDL:
> <?xml version="1.0" encoding="UTF-8"?>
> <definitions xmlns:tns="mesh.meshfacade" xmlns:wsr="http://www.openuri.org/2002/10/soap/reliability/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12enc="http://www.w3.org/2003/05/soap-encoding" xmlns:conv="http://www.openuri.org/2002/04/wsdl/conversation/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="mesh.meshfacade">
>  <types>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:mesh.meshfacade.vo" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:mesh.meshfacade.vo">
>    <xsd:import namespace="java:efsbase.common">
>    </xsd:import>
>    <xsd:complexType name="CreateMailboxRequest">
>     <xsd:complexContent>
>      <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseMSISDNRequest">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="domain" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="CreateMailboxResponse">
>     <xsd:complexContent>
>      <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseResponse">
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>   </xsd:schema>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="mesh.meshfacade" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="mesh.meshfacade">
>    <xsd:import namespace="java:mesh.meshfacade.vo">
>    </xsd:import>
>     <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxRequest" name="createMailbox" nillable="true">
>    </xsd:element>
>    <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxResponse" name="createMailboxResponse" nillable="true">
>    </xsd:element>
>   </xsd:schema>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:efsbase.common" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:efsbase.common">
>    <xsd:complexType name="EFSBaseMSISDNRequest">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseRequest">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="msisdn" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseObject">
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseRequest">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseObject">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="userId" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseResponse">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseObject">
>       <xsd:sequence>
>         <xsd:element type="xsd:string" name="transactionId" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>   </xsd:schema>
>  </types>
>  <message name="createMailbox">
>   <part xmlns:partns="mesh.meshfacade" name="createMailboxRequest" element="partns:createMailbox">
>   </part>
>  </message>
>  <message name="createMailboxResponse">
>   <part xmlns:partns="mesh.meshfacade" name="result" element="partns:createMailboxResponse">
>   </part>
>  </message>
>  <portType name="MeshFacadePort">
>    <operation name="createMailbox">
>    <input message="tns:createMailbox">
>    </input>
>    <output message="tns:createMailboxResponse">
>    </output>
>   </operation>
>  </portType>
>  <binding type="tns:MeshFacadePort" name="MeshFacadePort">
>    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>   <operation name="createMailbox">
>     <soap:operation style="document" soapAction=""/>
>    <input>
>      <soap:body use="literal"/>
>    </input>
>    <output>
>      <soap:body use="literal"/>
>    </output>
>   </operation>
>  </binding>
>  <service name="MeshFacade">
>   <port name="MeshFacadePort" binding="tns:MeshFacadePort">
>     <soap:address location="http://localhost/mesh/MeshFacade"/>
>   </port>
>  </service>
> </definitions>
> Generated code:
> public interface MeshFacadePort {
>     @ResponseWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxResponse", localName = "createMailboxResponse")
>     @RequestWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxRequest", localName = "createMailbox")
>     @WebMethod
>     public void createMailbox();
> }
> Clearly we expected the method to have a parameter and return value. I'm guessing (this has been an issue before CXF-1502) that the problem is that there are 2 elements "createMailbox", one type definition and one method/operation definition. Is this OK according to the WSDL specs or is it a bug in CXF? Other frameworks like Axis can generate a "correct", working client from the WSDL.
> Updated WSDL (snippet):
>  <portType name="MeshFacadePort">
>    <operation name="createMailbox2">
>    <input message="tns:createMailbox">
>    </input>
>    <output message="tns:createMailboxResponse">
>    </output>
>   </operation>
>  </portType>
>  <binding type="tns:MeshFacadePort" name="MeshFacadePort">
>    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>   <operation name="createMailbox2">
>     <soap:operation style="document" soapAction=""/>
>    <input>
>      <soap:body use="literal"/>
>    </input>
>    <output>
>      <soap:body use="literal"/>
>    </output>
>   </operation>
>  </binding>
> With different names we get the following, more correct code:
> public interface MeshFacadePort {
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @WebResult(targetNamespace = "mesh.meshfacade", partName = "result", name = "createMailboxResponse")
>     @WebMethod
>     public java.mesh_meshfacade.CreateMailboxResponse createMailbox2(
>         @WebParam(targetNamespace = "mesh.meshfacade", partName = "createMailboxRequest", name = "createMailbox")
>         java.mesh_meshfacade.CreateMailboxRequest createMailboxRequest
>     );
> }

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


[jira] Updated: (CXF-1223) Client code generates no parameters or return values for WSDL with multiple elements with same name

Posted by "Bozhong Lin (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1223?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bozhong Lin updated CXF-1223:
-----------------------------

    Fix Version/s: 2.1
         Assignee: jimma  (was: Bozhong Lin)

> Client code generates no parameters or return values for WSDL with multiple elements with same name
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CXF-1223
>                 URL: https://issues.apache.org/jira/browse/CXF-1223
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.0.3
>         Environment: Windows, OS X, Linux
>            Reporter: Peter Liljenberg
>            Assignee: jimma
>            Priority: Blocker
>             Fix For: 2.1
>
>
> When generating code with wsdl2java we end up with client code that have no parameters or return values for our methods.
> Complete WSDL:
> <?xml version="1.0" encoding="UTF-8"?>
> <definitions xmlns:tns="mesh.meshfacade" xmlns:wsr="http://www.openuri.org/2002/10/soap/reliability/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12enc="http://www.w3.org/2003/05/soap-encoding" xmlns:conv="http://www.openuri.org/2002/04/wsdl/conversation/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="mesh.meshfacade">
>  <types>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:mesh.meshfacade.vo" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:mesh.meshfacade.vo">
>    <xsd:import namespace="java:efsbase.common">
>    </xsd:import>
>    <xsd:complexType name="CreateMailboxRequest">
>     <xsd:complexContent>
>      <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseMSISDNRequest">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="domain" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="CreateMailboxResponse">
>     <xsd:complexContent>
>      <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseResponse">
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>   </xsd:schema>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="mesh.meshfacade" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="mesh.meshfacade">
>    <xsd:import namespace="java:mesh.meshfacade.vo">
>    </xsd:import>
>     <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxRequest" name="createMailbox" nillable="true">
>    </xsd:element>
>    <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxResponse" name="createMailboxResponse" nillable="true">
>    </xsd:element>
>   </xsd:schema>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:efsbase.common" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:efsbase.common">
>    <xsd:complexType name="EFSBaseMSISDNRequest">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseRequest">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="msisdn" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseObject">
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseRequest">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseObject">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="userId" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseResponse">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseObject">
>       <xsd:sequence>
>         <xsd:element type="xsd:string" name="transactionId" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>   </xsd:schema>
>  </types>
>  <message name="createMailbox">
>   <part xmlns:partns="mesh.meshfacade" name="createMailboxRequest" element="partns:createMailbox">
>   </part>
>  </message>
>  <message name="createMailboxResponse">
>   <part xmlns:partns="mesh.meshfacade" name="result" element="partns:createMailboxResponse">
>   </part>
>  </message>
>  <portType name="MeshFacadePort">
>    <operation name="createMailbox">
>    <input message="tns:createMailbox">
>    </input>
>    <output message="tns:createMailboxResponse">
>    </output>
>   </operation>
>  </portType>
>  <binding type="tns:MeshFacadePort" name="MeshFacadePort">
>    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>   <operation name="createMailbox">
>     <soap:operation style="document" soapAction=""/>
>    <input>
>      <soap:body use="literal"/>
>    </input>
>    <output>
>      <soap:body use="literal"/>
>    </output>
>   </operation>
>  </binding>
>  <service name="MeshFacade">
>   <port name="MeshFacadePort" binding="tns:MeshFacadePort">
>     <soap:address location="http://localhost/mesh/MeshFacade"/>
>   </port>
>  </service>
> </definitions>
> Generated code:
> public interface MeshFacadePort {
>     @ResponseWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxResponse", localName = "createMailboxResponse")
>     @RequestWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxRequest", localName = "createMailbox")
>     @WebMethod
>     public void createMailbox();
> }
> Clearly we expected the method to have a parameter and return value. I'm guessing (this has been an issue before CXF-1502) that the problem is that there are 2 elements "createMailbox", one type definition and one method/operation definition. Is this OK according to the WSDL specs or is it a bug in CXF? Other frameworks like Axis can generate a "correct", working client from the WSDL.
> Updated WSDL (snippet):
>  <portType name="MeshFacadePort">
>    <operation name="createMailbox2">
>    <input message="tns:createMailbox">
>    </input>
>    <output message="tns:createMailboxResponse">
>    </output>
>   </operation>
>  </portType>
>  <binding type="tns:MeshFacadePort" name="MeshFacadePort">
>    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>   <operation name="createMailbox2">
>     <soap:operation style="document" soapAction=""/>
>    <input>
>      <soap:body use="literal"/>
>    </input>
>    <output>
>      <soap:body use="literal"/>
>    </output>
>   </operation>
>  </binding>
> With different names we get the following, more correct code:
> public interface MeshFacadePort {
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @WebResult(targetNamespace = "mesh.meshfacade", partName = "result", name = "createMailboxResponse")
>     @WebMethod
>     public java.mesh_meshfacade.CreateMailboxResponse createMailbox2(
>         @WebParam(targetNamespace = "mesh.meshfacade", partName = "createMailboxRequest", name = "createMailbox")
>         java.mesh_meshfacade.CreateMailboxRequest createMailboxRequest
>     );
> }

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


[jira] Commented: (CXF-1223) Client code generates no parameters or return values for WSDL with multiple elements with same name

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CXF-1223?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12556685#action_12556685 ] 

Daniel Kulp commented on CXF-1223:
----------------------------------


David,

Your's is easy: this is per spec.     Per JAX-WS spec, only the FIRST element in the response squence is eligible to be considered for the return value.   In your case, the first element is "transactionId" which matches the name of an input param and thus that param becomes an INOUT param.   The remaining elements become OUT params and the return is void.

If you change your schema for the StatusResponseType to flip the two elements, the output would be different.



> Client code generates no parameters or return values for WSDL with multiple elements with same name
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CXF-1223
>                 URL: https://issues.apache.org/jira/browse/CXF-1223
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.0.3
>         Environment: Windows, OS X, Linux
>            Reporter: Peter Liljenberg
>            Assignee: jimma
>            Priority: Blocker
>             Fix For: 2.1
>
>
> When generating code with wsdl2java we end up with client code that have no parameters or return values for our methods.
> Complete WSDL:
> <?xml version="1.0" encoding="UTF-8"?>
> <definitions xmlns:tns="mesh.meshfacade" xmlns:wsr="http://www.openuri.org/2002/10/soap/reliability/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12enc="http://www.w3.org/2003/05/soap-encoding" xmlns:conv="http://www.openuri.org/2002/04/wsdl/conversation/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="mesh.meshfacade">
>  <types>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:mesh.meshfacade.vo" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:mesh.meshfacade.vo">
>    <xsd:import namespace="java:efsbase.common">
>    </xsd:import>
>    <xsd:complexType name="CreateMailboxRequest">
>     <xsd:complexContent>
>      <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseMSISDNRequest">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="domain" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="CreateMailboxResponse">
>     <xsd:complexContent>
>      <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseResponse">
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>   </xsd:schema>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="mesh.meshfacade" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="mesh.meshfacade">
>    <xsd:import namespace="java:mesh.meshfacade.vo">
>    </xsd:import>
>     <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxRequest" name="createMailbox" nillable="true">
>    </xsd:element>
>    <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxResponse" name="createMailboxResponse" nillable="true">
>    </xsd:element>
>   </xsd:schema>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:efsbase.common" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:efsbase.common">
>    <xsd:complexType name="EFSBaseMSISDNRequest">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseRequest">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="msisdn" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseObject">
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseRequest">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseObject">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="userId" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseResponse">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseObject">
>       <xsd:sequence>
>         <xsd:element type="xsd:string" name="transactionId" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>   </xsd:schema>
>  </types>
>  <message name="createMailbox">
>   <part xmlns:partns="mesh.meshfacade" name="createMailboxRequest" element="partns:createMailbox">
>   </part>
>  </message>
>  <message name="createMailboxResponse">
>   <part xmlns:partns="mesh.meshfacade" name="result" element="partns:createMailboxResponse">
>   </part>
>  </message>
>  <portType name="MeshFacadePort">
>    <operation name="createMailbox">
>    <input message="tns:createMailbox">
>    </input>
>    <output message="tns:createMailboxResponse">
>    </output>
>   </operation>
>  </portType>
>  <binding type="tns:MeshFacadePort" name="MeshFacadePort">
>    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>   <operation name="createMailbox">
>     <soap:operation style="document" soapAction=""/>
>    <input>
>      <soap:body use="literal"/>
>    </input>
>    <output>
>      <soap:body use="literal"/>
>    </output>
>   </operation>
>  </binding>
>  <service name="MeshFacade">
>   <port name="MeshFacadePort" binding="tns:MeshFacadePort">
>     <soap:address location="http://localhost/mesh/MeshFacade"/>
>   </port>
>  </service>
> </definitions>
> Generated code:
> public interface MeshFacadePort {
>     @ResponseWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxResponse", localName = "createMailboxResponse")
>     @RequestWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxRequest", localName = "createMailbox")
>     @WebMethod
>     public void createMailbox();
> }
> Clearly we expected the method to have a parameter and return value. I'm guessing (this has been an issue before CXF-1502) that the problem is that there are 2 elements "createMailbox", one type definition and one method/operation definition. Is this OK according to the WSDL specs or is it a bug in CXF? Other frameworks like Axis can generate a "correct", working client from the WSDL.
> Updated WSDL (snippet):
>  <portType name="MeshFacadePort">
>    <operation name="createMailbox2">
>    <input message="tns:createMailbox">
>    </input>
>    <output message="tns:createMailboxResponse">
>    </output>
>   </operation>
>  </portType>
>  <binding type="tns:MeshFacadePort" name="MeshFacadePort">
>    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>   <operation name="createMailbox2">
>     <soap:operation style="document" soapAction=""/>
>    <input>
>      <soap:body use="literal"/>
>    </input>
>    <output>
>      <soap:body use="literal"/>
>    </output>
>   </operation>
>  </binding>
> With different names we get the following, more correct code:
> public interface MeshFacadePort {
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @WebResult(targetNamespace = "mesh.meshfacade", partName = "result", name = "createMailboxResponse")
>     @WebMethod
>     public java.mesh_meshfacade.CreateMailboxResponse createMailbox2(
>         @WebParam(targetNamespace = "mesh.meshfacade", partName = "createMailboxRequest", name = "createMailbox")
>         java.mesh_meshfacade.CreateMailboxRequest createMailboxRequest
>     );
> }

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


[jira] Assigned: (CXF-1223) Client code generates no parameters or return values for WSDL with multiple elements with same name

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1223?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp reassigned CXF-1223:
--------------------------------

    Assignee: Daniel Kulp  (was: jimma)

> Client code generates no parameters or return values for WSDL with multiple elements with same name
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CXF-1223
>                 URL: https://issues.apache.org/jira/browse/CXF-1223
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.0.3
>         Environment: Windows, OS X, Linux
>            Reporter: Peter Liljenberg
>            Assignee: Daniel Kulp
>            Priority: Blocker
>             Fix For: 2.1
>
>
> When generating code with wsdl2java we end up with client code that have no parameters or return values for our methods.
> Complete WSDL:
> <?xml version="1.0" encoding="UTF-8"?>
> <definitions xmlns:tns="mesh.meshfacade" xmlns:wsr="http://www.openuri.org/2002/10/soap/reliability/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12enc="http://www.w3.org/2003/05/soap-encoding" xmlns:conv="http://www.openuri.org/2002/04/wsdl/conversation/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="mesh.meshfacade">
>  <types>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:mesh.meshfacade.vo" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:mesh.meshfacade.vo">
>    <xsd:import namespace="java:efsbase.common">
>    </xsd:import>
>    <xsd:complexType name="CreateMailboxRequest">
>     <xsd:complexContent>
>      <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseMSISDNRequest">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="domain" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="CreateMailboxResponse">
>     <xsd:complexContent>
>      <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseResponse">
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>   </xsd:schema>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="mesh.meshfacade" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="mesh.meshfacade">
>    <xsd:import namespace="java:mesh.meshfacade.vo">
>    </xsd:import>
>     <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxRequest" name="createMailbox" nillable="true">
>    </xsd:element>
>    <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxResponse" name="createMailboxResponse" nillable="true">
>    </xsd:element>
>   </xsd:schema>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:efsbase.common" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:efsbase.common">
>    <xsd:complexType name="EFSBaseMSISDNRequest">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseRequest">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="msisdn" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseObject">
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseRequest">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseObject">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="userId" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseResponse">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseObject">
>       <xsd:sequence>
>         <xsd:element type="xsd:string" name="transactionId" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>   </xsd:schema>
>  </types>
>  <message name="createMailbox">
>   <part xmlns:partns="mesh.meshfacade" name="createMailboxRequest" element="partns:createMailbox">
>   </part>
>  </message>
>  <message name="createMailboxResponse">
>   <part xmlns:partns="mesh.meshfacade" name="result" element="partns:createMailboxResponse">
>   </part>
>  </message>
>  <portType name="MeshFacadePort">
>    <operation name="createMailbox">
>    <input message="tns:createMailbox">
>    </input>
>    <output message="tns:createMailboxResponse">
>    </output>
>   </operation>
>  </portType>
>  <binding type="tns:MeshFacadePort" name="MeshFacadePort">
>    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>   <operation name="createMailbox">
>     <soap:operation style="document" soapAction=""/>
>    <input>
>      <soap:body use="literal"/>
>    </input>
>    <output>
>      <soap:body use="literal"/>
>    </output>
>   </operation>
>  </binding>
>  <service name="MeshFacade">
>   <port name="MeshFacadePort" binding="tns:MeshFacadePort">
>     <soap:address location="http://localhost/mesh/MeshFacade"/>
>   </port>
>  </service>
> </definitions>
> Generated code:
> public interface MeshFacadePort {
>     @ResponseWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxResponse", localName = "createMailboxResponse")
>     @RequestWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxRequest", localName = "createMailbox")
>     @WebMethod
>     public void createMailbox();
> }
> Clearly we expected the method to have a parameter and return value. I'm guessing (this has been an issue before CXF-1502) that the problem is that there are 2 elements "createMailbox", one type definition and one method/operation definition. Is this OK according to the WSDL specs or is it a bug in CXF? Other frameworks like Axis can generate a "correct", working client from the WSDL.
> Updated WSDL (snippet):
>  <portType name="MeshFacadePort">
>    <operation name="createMailbox2">
>    <input message="tns:createMailbox">
>    </input>
>    <output message="tns:createMailboxResponse">
>    </output>
>   </operation>
>  </portType>
>  <binding type="tns:MeshFacadePort" name="MeshFacadePort">
>    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>   <operation name="createMailbox2">
>     <soap:operation style="document" soapAction=""/>
>    <input>
>      <soap:body use="literal"/>
>    </input>
>    <output>
>      <soap:body use="literal"/>
>    </output>
>   </operation>
>  </binding>
> With different names we get the following, more correct code:
> public interface MeshFacadePort {
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @WebResult(targetNamespace = "mesh.meshfacade", partName = "result", name = "createMailboxResponse")
>     @WebMethod
>     public java.mesh_meshfacade.CreateMailboxResponse createMailbox2(
>         @WebParam(targetNamespace = "mesh.meshfacade", partName = "createMailboxRequest", name = "createMailbox")
>         java.mesh_meshfacade.CreateMailboxRequest createMailboxRequest
>     );
> }

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


[jira] Commented: (CXF-1223) Client code generates no parameters or return values for WSDL with multiple elements with same name

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CXF-1223?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12556686#action_12556686 ] 

Daniel Kulp commented on CXF-1223:
----------------------------------


Glen and Peter,

Both the RI and CXF are doing the wrong thing here.   According to spec, the operation should be generated in BARE mode with a single param and a single return object and no Request/Response Wrapper annotations.   

The reasons:  (from section 2.3.1.2 of the JAX-WS spec)   For it to be considered wrapped:

1) The wrapper element must NOT be nillable.  Yours are.

2) "The elements referred to by the input and output message (if present) parts (henceforth referred to a wrapper elements) are both complex types defined using the xsd:sequence compositor"    Yours are defined as extensions to other objects.  

in anycase, both CXF and the RI are incorrect.   They should be generated as BARE.   I'm going to try and get CXF fixed to do that.

 






> Client code generates no parameters or return values for WSDL with multiple elements with same name
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CXF-1223
>                 URL: https://issues.apache.org/jira/browse/CXF-1223
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.0.3
>         Environment: Windows, OS X, Linux
>            Reporter: Peter Liljenberg
>            Assignee: jimma
>            Priority: Blocker
>             Fix For: 2.1
>
>
> When generating code with wsdl2java we end up with client code that have no parameters or return values for our methods.
> Complete WSDL:
> <?xml version="1.0" encoding="UTF-8"?>
> <definitions xmlns:tns="mesh.meshfacade" xmlns:wsr="http://www.openuri.org/2002/10/soap/reliability/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12enc="http://www.w3.org/2003/05/soap-encoding" xmlns:conv="http://www.openuri.org/2002/04/wsdl/conversation/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="mesh.meshfacade">
>  <types>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:mesh.meshfacade.vo" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:mesh.meshfacade.vo">
>    <xsd:import namespace="java:efsbase.common">
>    </xsd:import>
>    <xsd:complexType name="CreateMailboxRequest">
>     <xsd:complexContent>
>      <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseMSISDNRequest">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="domain" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="CreateMailboxResponse">
>     <xsd:complexContent>
>      <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseResponse">
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>   </xsd:schema>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="mesh.meshfacade" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="mesh.meshfacade">
>    <xsd:import namespace="java:mesh.meshfacade.vo">
>    </xsd:import>
>     <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxRequest" name="createMailbox" nillable="true">
>    </xsd:element>
>    <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxResponse" name="createMailboxResponse" nillable="true">
>    </xsd:element>
>   </xsd:schema>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:efsbase.common" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:efsbase.common">
>    <xsd:complexType name="EFSBaseMSISDNRequest">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseRequest">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="msisdn" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseObject">
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseRequest">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseObject">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="userId" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseResponse">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseObject">
>       <xsd:sequence>
>         <xsd:element type="xsd:string" name="transactionId" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>   </xsd:schema>
>  </types>
>  <message name="createMailbox">
>   <part xmlns:partns="mesh.meshfacade" name="createMailboxRequest" element="partns:createMailbox">
>   </part>
>  </message>
>  <message name="createMailboxResponse">
>   <part xmlns:partns="mesh.meshfacade" name="result" element="partns:createMailboxResponse">
>   </part>
>  </message>
>  <portType name="MeshFacadePort">
>    <operation name="createMailbox">
>    <input message="tns:createMailbox">
>    </input>
>    <output message="tns:createMailboxResponse">
>    </output>
>   </operation>
>  </portType>
>  <binding type="tns:MeshFacadePort" name="MeshFacadePort">
>    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>   <operation name="createMailbox">
>     <soap:operation style="document" soapAction=""/>
>    <input>
>      <soap:body use="literal"/>
>    </input>
>    <output>
>      <soap:body use="literal"/>
>    </output>
>   </operation>
>  </binding>
>  <service name="MeshFacade">
>   <port name="MeshFacadePort" binding="tns:MeshFacadePort">
>     <soap:address location="http://localhost/mesh/MeshFacade"/>
>   </port>
>  </service>
> </definitions>
> Generated code:
> public interface MeshFacadePort {
>     @ResponseWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxResponse", localName = "createMailboxResponse")
>     @RequestWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxRequest", localName = "createMailbox")
>     @WebMethod
>     public void createMailbox();
> }
> Clearly we expected the method to have a parameter and return value. I'm guessing (this has been an issue before CXF-1502) that the problem is that there are 2 elements "createMailbox", one type definition and one method/operation definition. Is this OK according to the WSDL specs or is it a bug in CXF? Other frameworks like Axis can generate a "correct", working client from the WSDL.
> Updated WSDL (snippet):
>  <portType name="MeshFacadePort">
>    <operation name="createMailbox2">
>    <input message="tns:createMailbox">
>    </input>
>    <output message="tns:createMailboxResponse">
>    </output>
>   </operation>
>  </portType>
>  <binding type="tns:MeshFacadePort" name="MeshFacadePort">
>    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>   <operation name="createMailbox2">
>     <soap:operation style="document" soapAction=""/>
>    <input>
>      <soap:body use="literal"/>
>    </input>
>    <output>
>      <soap:body use="literal"/>
>    </output>
>   </operation>
>  </binding>
> With different names we get the following, more correct code:
> public interface MeshFacadePort {
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @WebResult(targetNamespace = "mesh.meshfacade", partName = "result", name = "createMailboxResponse")
>     @WebMethod
>     public java.mesh_meshfacade.CreateMailboxResponse createMailbox2(
>         @WebParam(targetNamespace = "mesh.meshfacade", partName = "createMailboxRequest", name = "createMailbox")
>         java.mesh_meshfacade.CreateMailboxRequest createMailboxRequest
>     );
> }

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


[jira] Resolved: (CXF-1223) Client code generates no parameters or return values for WSDL with multiple elements with same name

Posted by "Daniel Kulp (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CXF-1223?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp resolved CXF-1223.
------------------------------

       Resolution: Fixed
    Fix Version/s:     (was: 2.1)
                   2.0.4

> Client code generates no parameters or return values for WSDL with multiple elements with same name
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CXF-1223
>                 URL: https://issues.apache.org/jira/browse/CXF-1223
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.0.3
>         Environment: Windows, OS X, Linux
>            Reporter: Peter Liljenberg
>            Assignee: Daniel Kulp
>            Priority: Blocker
>             Fix For: 2.0.4
>
>
> When generating code with wsdl2java we end up with client code that have no parameters or return values for our methods.
> Complete WSDL:
> <?xml version="1.0" encoding="UTF-8"?>
> <definitions xmlns:tns="mesh.meshfacade" xmlns:wsr="http://www.openuri.org/2002/10/soap/reliability/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12enc="http://www.w3.org/2003/05/soap-encoding" xmlns:conv="http://www.openuri.org/2002/04/wsdl/conversation/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="mesh.meshfacade">
>  <types>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:mesh.meshfacade.vo" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:mesh.meshfacade.vo">
>    <xsd:import namespace="java:efsbase.common">
>    </xsd:import>
>    <xsd:complexType name="CreateMailboxRequest">
>     <xsd:complexContent>
>      <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseMSISDNRequest">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="domain" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="CreateMailboxResponse">
>     <xsd:complexContent>
>      <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseResponse">
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>   </xsd:schema>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="mesh.meshfacade" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="mesh.meshfacade">
>    <xsd:import namespace="java:mesh.meshfacade.vo">
>    </xsd:import>
>     <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxRequest" name="createMailbox" nillable="true">
>    </xsd:element>
>    <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxResponse" name="createMailboxResponse" nillable="true">
>    </xsd:element>
>   </xsd:schema>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:efsbase.common" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:efsbase.common">
>    <xsd:complexType name="EFSBaseMSISDNRequest">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseRequest">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="msisdn" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseObject">
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseRequest">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseObject">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="userId" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseResponse">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseObject">
>       <xsd:sequence>
>         <xsd:element type="xsd:string" name="transactionId" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>   </xsd:schema>
>  </types>
>  <message name="createMailbox">
>   <part xmlns:partns="mesh.meshfacade" name="createMailboxRequest" element="partns:createMailbox">
>   </part>
>  </message>
>  <message name="createMailboxResponse">
>   <part xmlns:partns="mesh.meshfacade" name="result" element="partns:createMailboxResponse">
>   </part>
>  </message>
>  <portType name="MeshFacadePort">
>    <operation name="createMailbox">
>    <input message="tns:createMailbox">
>    </input>
>    <output message="tns:createMailboxResponse">
>    </output>
>   </operation>
>  </portType>
>  <binding type="tns:MeshFacadePort" name="MeshFacadePort">
>    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>   <operation name="createMailbox">
>     <soap:operation style="document" soapAction=""/>
>    <input>
>      <soap:body use="literal"/>
>    </input>
>    <output>
>      <soap:body use="literal"/>
>    </output>
>   </operation>
>  </binding>
>  <service name="MeshFacade">
>   <port name="MeshFacadePort" binding="tns:MeshFacadePort">
>     <soap:address location="http://localhost/mesh/MeshFacade"/>
>   </port>
>  </service>
> </definitions>
> Generated code:
> public interface MeshFacadePort {
>     @ResponseWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxResponse", localName = "createMailboxResponse")
>     @RequestWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxRequest", localName = "createMailbox")
>     @WebMethod
>     public void createMailbox();
> }
> Clearly we expected the method to have a parameter and return value. I'm guessing (this has been an issue before CXF-1502) that the problem is that there are 2 elements "createMailbox", one type definition and one method/operation definition. Is this OK according to the WSDL specs or is it a bug in CXF? Other frameworks like Axis can generate a "correct", working client from the WSDL.
> Updated WSDL (snippet):
>  <portType name="MeshFacadePort">
>    <operation name="createMailbox2">
>    <input message="tns:createMailbox">
>    </input>
>    <output message="tns:createMailboxResponse">
>    </output>
>   </operation>
>  </portType>
>  <binding type="tns:MeshFacadePort" name="MeshFacadePort">
>    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>   <operation name="createMailbox2">
>     <soap:operation style="document" soapAction=""/>
>    <input>
>      <soap:body use="literal"/>
>    </input>
>    <output>
>      <soap:body use="literal"/>
>    </output>
>   </operation>
>  </binding>
> With different names we get the following, more correct code:
> public interface MeshFacadePort {
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @WebResult(targetNamespace = "mesh.meshfacade", partName = "result", name = "createMailboxResponse")
>     @WebMethod
>     public java.mesh_meshfacade.CreateMailboxResponse createMailbox2(
>         @WebParam(targetNamespace = "mesh.meshfacade", partName = "createMailboxRequest", name = "createMailbox")
>         java.mesh_meshfacade.CreateMailboxRequest createMailboxRequest
>     );
> }

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


[jira] Commented: (CXF-1223) Client code generates no parameters or return values for WSDL with multiple elements with same name

Posted by "Glen Mazza (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CXF-1223?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12544040 ] 

Glen Mazza commented on CXF-1223:
---------------------------------

I was able to duplicate your bug using your WSDL.  This appears to be a CXF error (also, CXF's wsdl2java -validate option does not consider the WSDL to be invalid), because GlassFish Metro is also accepting it.  The same WSDL with Metro returns (in MeshFacadePort.java):

    @WebMethod
    @WebResult(name = "transactionId", targetNamespace = "java:efsbase.common")
    @RequestWrapper(localName = "createMailbox", targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxRequest")
    @ResponseWrapper(localName = "createMailboxResponse", targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxResponse")
    public String createMailbox(
        @WebParam(name = "userId", targetNamespace = "java:efsbase.common")
        String userId,
        @WebParam(name = "msisdn", targetNamespace = "java:efsbase.common")
        String msisdn,
        @WebParam(name = "domain", targetNamespace = "java:mesh.meshfacade.vo")
        String domain);


> Client code generates no parameters or return values for WSDL with multiple elements with same name
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CXF-1223
>                 URL: https://issues.apache.org/jira/browse/CXF-1223
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.0.3
>         Environment: Windows, OS X, Linux
>            Reporter: Peter Liljenberg
>            Priority: Blocker
>
> When generating code with wsdl2java we end up with client code that have no parameters or return values for our methods.
> Complete WSDL:
> <?xml version="1.0" encoding="UTF-8"?>
> <definitions xmlns:tns="mesh.meshfacade" xmlns:wsr="http://www.openuri.org/2002/10/soap/reliability/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12enc="http://www.w3.org/2003/05/soap-encoding" xmlns:conv="http://www.openuri.org/2002/04/wsdl/conversation/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="mesh.meshfacade">
>  <types>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:mesh.meshfacade.vo" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:mesh.meshfacade.vo">
>    <xsd:import namespace="java:efsbase.common">
>    </xsd:import>
>    <xsd:complexType name="CreateMailboxRequest">
>     <xsd:complexContent>
>      <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseMSISDNRequest">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="domain" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="CreateMailboxResponse">
>     <xsd:complexContent>
>      <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseResponse">
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>   </xsd:schema>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="mesh.meshfacade" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="mesh.meshfacade">
>    <xsd:import namespace="java:mesh.meshfacade.vo">
>    </xsd:import>
>     <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxRequest" name="createMailbox" nillable="true">
>    </xsd:element>
>    <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxResponse" name="createMailboxResponse" nillable="true">
>    </xsd:element>
>   </xsd:schema>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:efsbase.common" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:efsbase.common">
>    <xsd:complexType name="EFSBaseMSISDNRequest">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseRequest">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="msisdn" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseObject">
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseRequest">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseObject">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="userId" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseResponse">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseObject">
>       <xsd:sequence>
>         <xsd:element type="xsd:string" name="transactionId" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>   </xsd:schema>
>  </types>
>  <message name="createMailbox">
>   <part xmlns:partns="mesh.meshfacade" name="createMailboxRequest" element="partns:createMailbox">
>   </part>
>  </message>
>  <message name="createMailboxResponse">
>   <part xmlns:partns="mesh.meshfacade" name="result" element="partns:createMailboxResponse">
>   </part>
>  </message>
>  <portType name="MeshFacadePort">
>    <operation name="createMailbox">
>    <input message="tns:createMailbox">
>    </input>
>    <output message="tns:createMailboxResponse">
>    </output>
>   </operation>
>  </portType>
>  <binding type="tns:MeshFacadePort" name="MeshFacadePort">
>    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>   <operation name="createMailbox">
>     <soap:operation style="document" soapAction=""/>
>    <input>
>      <soap:body use="literal"/>
>    </input>
>    <output>
>      <soap:body use="literal"/>
>    </output>
>   </operation>
>  </binding>
>  <service name="MeshFacade">
>   <port name="MeshFacadePort" binding="tns:MeshFacadePort">
>     <soap:address location="http://localhost/mesh/MeshFacade"/>
>   </port>
>  </service>
> </definitions>
> Generated code:
> public interface MeshFacadePort {
>     @ResponseWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxResponse", localName = "createMailboxResponse")
>     @RequestWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxRequest", localName = "createMailbox")
>     @WebMethod
>     public void createMailbox();
> }
> Clearly we expected the method to have a parameter and return value. I'm guessing (this has been an issue before CXF-1502) that the problem is that there are 2 elements "createMailbox", one type definition and one method/operation definition. Is this OK according to the WSDL specs or is it a bug in CXF? Other frameworks like Axis can generate a "correct", working client from the WSDL.
> Updated WSDL (snippet):
>  <portType name="MeshFacadePort">
>    <operation name="createMailbox2">
>    <input message="tns:createMailbox">
>    </input>
>    <output message="tns:createMailboxResponse">
>    </output>
>   </operation>
>  </portType>
>  <binding type="tns:MeshFacadePort" name="MeshFacadePort">
>    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>   <operation name="createMailbox2">
>     <soap:operation style="document" soapAction=""/>
>    <input>
>      <soap:body use="literal"/>
>    </input>
>    <output>
>      <soap:body use="literal"/>
>    </output>
>   </operation>
>  </binding>
> With different names we get the following, more correct code:
> public interface MeshFacadePort {
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @WebResult(targetNamespace = "mesh.meshfacade", partName = "result", name = "createMailboxResponse")
>     @WebMethod
>     public java.mesh_meshfacade.CreateMailboxResponse createMailbox2(
>         @WebParam(targetNamespace = "mesh.meshfacade", partName = "createMailboxRequest", name = "createMailbox")
>         java.mesh_meshfacade.CreateMailboxRequest createMailboxRequest
>     );
> }

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


[jira] Commented: (CXF-1223) Client code generates no parameters or return values for WSDL with multiple elements with same name

Posted by "David Fladung (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CXF-1223?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12556726#action_12556726 ] 

David Fladung commented on CXF-1223:
------------------------------------

Daniel,

Thanks for the reply. However, I don't understand why when I change "Submit" to "SubmitRequest" I get different behavior. Following your logic the type name would be irrelevant in the case right? Also, I tried flipping the params (even though this isn't something I can do going forward) and I got the same behavior.


> Client code generates no parameters or return values for WSDL with multiple elements with same name
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CXF-1223
>                 URL: https://issues.apache.org/jira/browse/CXF-1223
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.0.3
>         Environment: Windows, OS X, Linux
>            Reporter: Peter Liljenberg
>            Assignee: Daniel Kulp
>            Priority: Blocker
>             Fix For: 2.1
>
>
> When generating code with wsdl2java we end up with client code that have no parameters or return values for our methods.
> Complete WSDL:
> <?xml version="1.0" encoding="UTF-8"?>
> <definitions xmlns:tns="mesh.meshfacade" xmlns:wsr="http://www.openuri.org/2002/10/soap/reliability/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12enc="http://www.w3.org/2003/05/soap-encoding" xmlns:conv="http://www.openuri.org/2002/04/wsdl/conversation/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="mesh.meshfacade">
>  <types>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:mesh.meshfacade.vo" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:mesh.meshfacade.vo">
>    <xsd:import namespace="java:efsbase.common">
>    </xsd:import>
>    <xsd:complexType name="CreateMailboxRequest">
>     <xsd:complexContent>
>      <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseMSISDNRequest">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="domain" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="CreateMailboxResponse">
>     <xsd:complexContent>
>      <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseResponse">
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>   </xsd:schema>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="mesh.meshfacade" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="mesh.meshfacade">
>    <xsd:import namespace="java:mesh.meshfacade.vo">
>    </xsd:import>
>     <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxRequest" name="createMailbox" nillable="true">
>    </xsd:element>
>    <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxResponse" name="createMailboxResponse" nillable="true">
>    </xsd:element>
>   </xsd:schema>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:efsbase.common" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:efsbase.common">
>    <xsd:complexType name="EFSBaseMSISDNRequest">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseRequest">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="msisdn" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseObject">
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseRequest">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseObject">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="userId" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseResponse">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseObject">
>       <xsd:sequence>
>         <xsd:element type="xsd:string" name="transactionId" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>   </xsd:schema>
>  </types>
>  <message name="createMailbox">
>   <part xmlns:partns="mesh.meshfacade" name="createMailboxRequest" element="partns:createMailbox">
>   </part>
>  </message>
>  <message name="createMailboxResponse">
>   <part xmlns:partns="mesh.meshfacade" name="result" element="partns:createMailboxResponse">
>   </part>
>  </message>
>  <portType name="MeshFacadePort">
>    <operation name="createMailbox">
>    <input message="tns:createMailbox">
>    </input>
>    <output message="tns:createMailboxResponse">
>    </output>
>   </operation>
>  </portType>
>  <binding type="tns:MeshFacadePort" name="MeshFacadePort">
>    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>   <operation name="createMailbox">
>     <soap:operation style="document" soapAction=""/>
>    <input>
>      <soap:body use="literal"/>
>    </input>
>    <output>
>      <soap:body use="literal"/>
>    </output>
>   </operation>
>  </binding>
>  <service name="MeshFacade">
>   <port name="MeshFacadePort" binding="tns:MeshFacadePort">
>     <soap:address location="http://localhost/mesh/MeshFacade"/>
>   </port>
>  </service>
> </definitions>
> Generated code:
> public interface MeshFacadePort {
>     @ResponseWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxResponse", localName = "createMailboxResponse")
>     @RequestWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxRequest", localName = "createMailbox")
>     @WebMethod
>     public void createMailbox();
> }
> Clearly we expected the method to have a parameter and return value. I'm guessing (this has been an issue before CXF-1502) that the problem is that there are 2 elements "createMailbox", one type definition and one method/operation definition. Is this OK according to the WSDL specs or is it a bug in CXF? Other frameworks like Axis can generate a "correct", working client from the WSDL.
> Updated WSDL (snippet):
>  <portType name="MeshFacadePort">
>    <operation name="createMailbox2">
>    <input message="tns:createMailbox">
>    </input>
>    <output message="tns:createMailboxResponse">
>    </output>
>   </operation>
>  </portType>
>  <binding type="tns:MeshFacadePort" name="MeshFacadePort">
>    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>   <operation name="createMailbox2">
>     <soap:operation style="document" soapAction=""/>
>    <input>
>      <soap:body use="literal"/>
>    </input>
>    <output>
>      <soap:body use="literal"/>
>    </output>
>   </operation>
>  </binding>
> With different names we get the following, more correct code:
> public interface MeshFacadePort {
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @WebResult(targetNamespace = "mesh.meshfacade", partName = "result", name = "createMailboxResponse")
>     @WebMethod
>     public java.mesh_meshfacade.CreateMailboxResponse createMailbox2(
>         @WebParam(targetNamespace = "mesh.meshfacade", partName = "createMailboxRequest", name = "createMailbox")
>         java.mesh_meshfacade.CreateMailboxRequest createMailboxRequest
>     );
> }

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


[jira] Commented: (CXF-1223) Client code generates no parameters or return values for WSDL with multiple elements with same name

Posted by "David Fladung (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/CXF-1223?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12554836 ] 

David Fladung commented on CXF-1223:
------------------------------------

I'm experiencing a very similar issue, however, instead of generating code with no arguments or return types, all of the parameters end up as arguments to the generated Java method, with Mode.OUT assigned to the logical output parameters. If I change the type definition name everything works as expected.

<?xml version='1.0' encoding='UTF-8' ?>
<definitions name='NetworkNode2' targetNamespace='http://www.exchangenetwork.net/wsdl/node/2'
	xmlns:tns='http://www.exchangenetwork.net/wsdl/node/2' xmlns:xsd='http://www.w3.org/2001/XMLSchema'
	xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:typens='http://www.exchangenetwork.net/schema/node/2'
	xmlns='http://schemas.xmlsoap.org/wsdl/'>
	<types>
		<schema targetNamespace='http://www.exchangenetwork.net/schema/node/2' xmlns='http://www.w3.org/2001/XMLSchema'
			xmlns:xmime="http://www.w3.org/2005/05/xmlmime" elementFormDefault='qualified'>
			<import namespace="http://www.w3.org/2005/05/xmlmime" schemaLocation="http://www.w3.org/2005/05/xmlmime" />
			<element name="NodeFaultDetailType">
				<complexType>
					<sequence>
						<element name="Description" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false" />
					</sequence>
				</complexType>
			</element>
			<complexType name="StatusResponseType">
				<annotation>
					<documentation>
						The status response type contains three elements: transactionId : The UUID for the transaction.
						status: The current status of the transaction. A transaction can be successful or failed
						immediately. message: A text description of errors if any.
					</documentation>
				</annotation>
				<sequence>
					<element name='transactionId' type='xsd:string' />
					<element name='statusDetail' type='xsd:string' />
				</sequence>
			</complexType>
			<element name="Submit">
				<complexType>
					<sequence>
						<element name='securityToken' type='xsd:string' />
						<element name='transactionId' type='xsd:string' />
						<element name='dataflow' type='xsd:NCName' />
						<element name='flowOperation' type='xsd:string' />
						<element name='recipients' type='xsd:string' />
						<element name='notificationURI' type='xsd:string' />
					</sequence>
				</complexType>
			</element>
			<element name="SubmitResponse" type="typens:StatusResponseType" />
		</schema>
	</types>
	<message name='SubmitRequest'>
		<part name='in' element='typens:Submit' />
	</message>
	<message name='SubmitResponse'>
		<part name='out' element='typens:SubmitResponse' />
	</message>
	<message name='NodeFaultMessage'>
		<part name='fault' element='typens:NodeFaultDetailType' />
	</message>
	<portType name='NetworkNodePortType2'>
		<operation name='Submit'>
			<documentation>Submit one or more documents to the node.</documentation>
			<input message='tns:SubmitRequest' name="SubmitRequest" />
			<output message='tns:SubmitResponse' name="SubmitResponse" />
			<fault name='NodeFaultDetail' message='tns:NodeFaultMessage' />
		</operation>
	</portType>
	<binding name='NetworkNodeBinding2' type='tns:NetworkNodePortType2'>
		<soap12:binding style='document' transport='http://schemas.xmlsoap.org/soap/http' />
		<operation name='Submit'>
			<soap12:operation style="document" soapAction='' />
			<input name="SubmitRequest">
				<soap12:body use='literal' />
			</input>
			<output name="SubmitResponse">
				<soap12:body use='literal' />
			</output>
			<fault name="NodeFaultDetail">
				<soap12:fault name='NodeFaultDetail' use='literal' />
			</fault>
		</operation>
	</binding>
	<service name='NetworkNode2'>
		<documentation>Network Node 2.0 definitions for the Environmental Information Exchange Network</documentation>
		<port name='NetworkNodePort2' binding='tns:NetworkNodeBinding2'>
			<soap12:address location='http://localhost/xml/node_v20_draft.wsdl' />
		</port>
	</service>
</definitions>

@ResponseWrapper(targetNamespace = "http://www.exchangenetwork.net/schema/node/2", className = "net.exchangenetwork.node2.schema.StatusResponseType", localName = "SubmitResponse")
    @RequestWrapper(targetNamespace = "http://www.exchangenetwork.net/schema/node/2", className = "net.exchangenetwork.node2.schema.Submit", localName = "Submit")
    @WebMethod(operationName = "Submit")
    public void submit(
        @WebParam(targetNamespace = "http://www.exchangenetwork.net/schema/node/2", name = "securityToken")
        java.lang.String securityToken,
        @WebParam(targetNamespace = "http://www.exchangenetwork.net/schema/node/2", mode = Mode.INOUT, name = "transactionId")
        javax.xml.ws.Holder<java.lang.String> transactionId,
        @WebParam(targetNamespace = "http://www.exchangenetwork.net/schema/node/2", name = "dataflow")
        java.lang.String dataflow,
        @WebParam(targetNamespace = "http://www.exchangenetwork.net/schema/node/2", name = "flowOperation")
        java.lang.String flowOperation,
        @WebParam(targetNamespace = "http://www.exchangenetwork.net/schema/node/2", name = "recipients")
        java.lang.String recipients,
        @WebParam(targetNamespace = "http://www.exchangenetwork.net/schema/node/2", name = "notificationURI")
        java.lang.String notificationURI,
        @WebParam(targetNamespace = "http://www.exchangenetwork.net/schema/node/2", mode = Mode.OUT, name = "statusDetail")
        javax.xml.ws.Holder<java.lang.String> statusDetail
    ) throws NodeFaultMessage;

> Client code generates no parameters or return values for WSDL with multiple elements with same name
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CXF-1223
>                 URL: https://issues.apache.org/jira/browse/CXF-1223
>             Project: CXF
>          Issue Type: Bug
>    Affects Versions: 2.0.3
>         Environment: Windows, OS X, Linux
>            Reporter: Peter Liljenberg
>            Assignee: jimma
>            Priority: Blocker
>             Fix For: 2.1
>
>
> When generating code with wsdl2java we end up with client code that have no parameters or return values for our methods.
> Complete WSDL:
> <?xml version="1.0" encoding="UTF-8"?>
> <definitions xmlns:tns="mesh.meshfacade" xmlns:wsr="http://www.openuri.org/2002/10/soap/reliability/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12enc="http://www.w3.org/2003/05/soap-encoding" xmlns:conv="http://www.openuri.org/2002/04/wsdl/conversation/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="mesh.meshfacade">
>  <types>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:mesh.meshfacade.vo" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:mesh.meshfacade.vo">
>    <xsd:import namespace="java:efsbase.common">
>    </xsd:import>
>    <xsd:complexType name="CreateMailboxRequest">
>     <xsd:complexContent>
>      <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseMSISDNRequest">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="domain" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="CreateMailboxResponse">
>     <xsd:complexContent>
>      <xsd:extension xmlns:tp="java:efsbase.common" base="tp:EFSBaseResponse">
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>   </xsd:schema>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="mesh.meshfacade" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="mesh.meshfacade">
>    <xsd:import namespace="java:mesh.meshfacade.vo">
>    </xsd:import>
>     <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxRequest" name="createMailbox" nillable="true">
>    </xsd:element>
>    <xsd:element xmlns:tp="java:mesh.meshfacade.vo" type="tp:CreateMailboxResponse" name="createMailboxResponse" nillable="true">
>    </xsd:element>
>   </xsd:schema>
>   <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:stns="java:efsbase.common" elementFormDefault="qualified" attributeFormDefault="qualified" targetNamespace="java:efsbase.common">
>    <xsd:complexType name="EFSBaseMSISDNRequest">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseRequest">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="msisdn" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseObject">
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseRequest">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseObject">
>       <xsd:sequence>
>        <xsd:element type="xsd:string" name="userId" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>    <xsd:complexType name="EFSBaseResponse">
>     <xsd:complexContent>
>      <xsd:extension base="stns:EFSBaseObject">
>       <xsd:sequence>
>         <xsd:element type="xsd:string" name="transactionId" minOccurs="1" maxOccurs="1" nillable="true">
>        </xsd:element>
>       </xsd:sequence>
>      </xsd:extension>
>     </xsd:complexContent>
>    </xsd:complexType>
>   </xsd:schema>
>  </types>
>  <message name="createMailbox">
>   <part xmlns:partns="mesh.meshfacade" name="createMailboxRequest" element="partns:createMailbox">
>   </part>
>  </message>
>  <message name="createMailboxResponse">
>   <part xmlns:partns="mesh.meshfacade" name="result" element="partns:createMailboxResponse">
>   </part>
>  </message>
>  <portType name="MeshFacadePort">
>    <operation name="createMailbox">
>    <input message="tns:createMailbox">
>    </input>
>    <output message="tns:createMailboxResponse">
>    </output>
>   </operation>
>  </portType>
>  <binding type="tns:MeshFacadePort" name="MeshFacadePort">
>    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>   <operation name="createMailbox">
>     <soap:operation style="document" soapAction=""/>
>    <input>
>      <soap:body use="literal"/>
>    </input>
>    <output>
>      <soap:body use="literal"/>
>    </output>
>   </operation>
>  </binding>
>  <service name="MeshFacade">
>   <port name="MeshFacadePort" binding="tns:MeshFacadePort">
>     <soap:address location="http://localhost/mesh/MeshFacade"/>
>   </port>
>  </service>
> </definitions>
> Generated code:
> public interface MeshFacadePort {
>     @ResponseWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxResponse", localName = "createMailboxResponse")
>     @RequestWrapper(targetNamespace = "mesh.meshfacade", className = "java.mesh_meshfacade.CreateMailboxRequest", localName = "createMailbox")
>     @WebMethod
>     public void createMailbox();
> }
> Clearly we expected the method to have a parameter and return value. I'm guessing (this has been an issue before CXF-1502) that the problem is that there are 2 elements "createMailbox", one type definition and one method/operation definition. Is this OK according to the WSDL specs or is it a bug in CXF? Other frameworks like Axis can generate a "correct", working client from the WSDL.
> Updated WSDL (snippet):
>  <portType name="MeshFacadePort">
>    <operation name="createMailbox2">
>    <input message="tns:createMailbox">
>    </input>
>    <output message="tns:createMailboxResponse">
>    </output>
>   </operation>
>  </portType>
>  <binding type="tns:MeshFacadePort" name="MeshFacadePort">
>    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>   <operation name="createMailbox2">
>     <soap:operation style="document" soapAction=""/>
>    <input>
>      <soap:body use="literal"/>
>    </input>
>    <output>
>      <soap:body use="literal"/>
>    </output>
>   </operation>
>  </binding>
> With different names we get the following, more correct code:
> public interface MeshFacadePort {
>     @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
>     @WebResult(targetNamespace = "mesh.meshfacade", partName = "result", name = "createMailboxResponse")
>     @WebMethod
>     public java.mesh_meshfacade.CreateMailboxResponse createMailbox2(
>         @WebParam(targetNamespace = "mesh.meshfacade", partName = "createMailboxRequest", name = "createMailbox")
>         java.mesh_meshfacade.CreateMailboxRequest createMailboxRequest
>     );
> }

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