[
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