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

Daniel Kulp resolved CXF-4113.
------------------------------

       Resolution: Fixed
    Fix Version/s: 2.5.3
                   2.4.7
         Assignee: Daniel Kulp
    
> Header fields duplication in generated wsdl file when using aegis databinding
> -----------------------------------------------------------------------------
>
>                 Key: CXF-4113
>                 URL: https://issues.apache.org/jira/browse/CXF-4113
>             Project: CXF
>          Issue Type: Bug
>          Components: Aegis Databinding, JAX-WS Runtime
>    Affects Versions: 2.4, 2.5
>            Reporter: Artur Ashyrov
>            Assignee: Daniel Kulp
>             Fix For: 2.4.7, 2.5.3
>
>         Attachments: cxfaegisbug.zip
>
>
> CXF generates invalid wsdl for jax-ws annotated interfaces when using aegis 
> databinding. 
> Problem is in generating schema for methods which have parameters annotated 
> with @WebParam( name='...', header=true).
> Such parameters are being duplicated in generated wsdl. For example:
> {code}
> ...
>   <xsd:element name="buggyWsdlDef" type="buggyWsdlDef"/>
>   <xsd:complexType name="buggyWsdlDef">
>     <xsd:sequence>
>       <xsd:element minOccurs="0" name="userName" nillable="true" 
> type="xsd:string"/>
>     </xsd:sequence>
>   </xsd:complexType>
>   <xsd:element name="firstHeader" type="xsd:int"/>
>   <xsd:element name="secondHeader" type="xsd:string"/>
>   <xsd:element name="firstHeader" nillable="true" type="xsd:int"/>
>   <xsd:element name="secondHeader" nillable="true" type="xsd:string"/>
>   <xsd:element name="buggyWsdlDefResponse" type="buggyWsdlDefResponse"/>
> ...
> {code}
> This causes some clients totally not to work with such web service(soap ui 
> doesn't complain somewhy). 
> Eclipse wsdl validator gives me this error:
> "A schema cannot contain two global components with the same name; this 
> schema contains two occurrences of 
> 'http://service.common.example.com/,firstHeader'.
> My investigation shows that:
> 1. This problem appears only when using aegis databinding.
> 2. This bug presented in versions which are >= 2.4.0 (last version without 
> this bug is 2.3.9)
> 3. This happens only in wsdl that is being generated for importing through 
> wsdl:import directive. 
> In my case original wsdl is <ws-url>/service?wsdl and one that is imported is 
> <ws-url>/service?wsdl=ExampleService.wsdl
> 4. Debugging shows that problem is probably in ReflectionServiceFactoryBean. 
> When service is starting, next chain of methods is called: 
> buildServiceFromClass->...initializeParameter[many 
> times]->...initializeWrappedSchema[many times]
> initializeWrappedSchema method calls checkForElement(...) which adds 
> duplications for header parameters in service object model(ServiceInfo 
> instance).
> Not sure why exactly this happens but hope that it will help you at least 
> locate the problem.
> I'm attaching maven project which demonstrates this problem.
> In order to reproduce this bug using sample project attached:
> 1. "mvn jetty:run" in project directory
> 2. Open localhost:8080/CXFExampleService/service?wsdl=ExampleService.wsdl in 
> the browser
> Search for '<xsd:complexType name="buggyWsdlDef">' occurence in that wsdl.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to