WSDL is incorrectly generated with JAX-WS annotations when configuring custom Header class
Issue
- Created a custom Header class that we will be including in the soap request.
-
It seems that in the generated WSDL, the header element is duplicated for each different operation, instead of being defined only once.
-
Here's where the issue lie in the generated wsdl,
<xs:element name="MyHeader" type="myHeader"/>
<xs:element name="myOperation2Response" type="myOperation2Response"/>
<xs:complexType name="myOperation2Response">
<xs:sequence>
<xs:element form="qualified" minOccurs="0" name="MyOperation2Out" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="myOperation1" type="myOperation1"/>
<xs:complexType name="myOperation1">
<xs:sequence>
<xs:element form="qualified" minOccurs="0" name="MyOperation1In" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="MyHeader" type="myHeader"/>
<xs:element name="myOperation1Response" type="myOperation1Response"/>
<xs:complexType name="myOperation1Response">
<xs:sequence>
<xs:element form="qualified" minOccurs="0" name="MyOperation1Out" type="xs:string"/>
</xs:sequence>
- What we expect is to have something to get generated like the below,
<xs:element name="myOperation1" type="tns:myOperation1"/>
<xs:element name="myOperation1Response" type="tns:myOperation1Response"/>
<xs:element name="myOperation2" type="tns:myOperation2"/>
<xs:element name="myOperation2Response" type="tns:myOperation2Response"/>
<xs:complexType name="myOperation2">
<xs:sequence>
<xs:element form="qualified" minOccurs="0" name="MyOperation2In" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType final="extension restriction" name="myHeader">
<xs:sequence>
<xs:element form="qualified" name="MyText" type="xs:string"/>
<xs:element form="qualified" name="MyUser" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="myOperation2Response">
<xs:sequence>
<xs:element form="qualified" minOccurs="0" name="MyOperation2Out" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="myOperation1">
<xs:sequence>
<xs:element form="qualified" minOccurs="0" name="MyOperation1In" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="myOperation1Response">
<xs:sequence>
<xs:element form="qualified" minOccurs="0" name="MyOperation1Out" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="MyHeader" nillable="true" type="tns:myHeader"/>
Environment
- JBoss Enterprise Application Platform (EAP)
- 6.1.0
- JBossWS-CXF
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
