[
https://issues.apache.org/jira/browse/AXIS2-2902?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andreas Veithen resolved AXIS2-2902.
------------------------------------
Resolution: Duplicate
Fix Version/s: 1.7.0
Assignee: Andreas Veithen (was: Amila Chinthaka Suriarachchi)
I think that this is the same issue as AXIS2-4197 which has been fixed recently.
> jaxbri databinding cannot handle multiple XML elements of the same type
> -----------------------------------------------------------------------
>
> Key: AXIS2-2902
> URL: https://issues.apache.org/jira/browse/AXIS2-2902
> Project: Axis2
> Issue Type: Bug
> Components: databinding
> Affects Versions: 1.2
> Reporter: Denis Rachal
> Assignee: Andreas Veithen
> Fix For: 1.7.0
>
> Attachments: test.wsdl
>
>
> wsdl2java with jaxbri databinding cannot handle multiple XML elements of the
> same type. I have two elements of the same type. If I define two messages in
> my WSDL with the two different XML elements that are of the same type, a
> message is generated for the second element with the name of the first
> element.
> WSDL is attached for an example.
> In short. I have defined two request messages:
> <wsdl:message name="ReplyToRequestMessage">
> <wsdl:part name="ReplyTo" element="wsa:ReplyTo" />
> </wsdl:message>
> and
> <wsdl:message name="FromResponseMessage">
> <wsdl:part name="From" element="wsa:From" />
> </wsdl:message>
> WS Addressing (http://schemas.xmlsoap.org/ws/2004/08/addressing/) defines the
> elements "ReplyTo" & "From" as follows:
> <xs:element name="From" type="wsa:EndpointReferenceType" />
> <xs:element name="ReplyTo" type="wsa:EndpointReferenceType" />
> They are both the same type, "wsa:EndpointReferenceType"
> The stub code generated has a toOM() method that is used to generate both the
> "ReplyTo" element and the "From" element, but the method has hardcoded the
> element name "ReplyTo" making it incorrect for the use with the "From" case.
> See generated code below:
> private org.apache.axiom.om.OMElement
> toOM(org.xmlsoap.schemas.ws._2004._08.addressing.EndpointReferenceType param,
> org.apache.axiom.soap.SOAPFactory factory, boolean optimizeContent) {
> try {
> javax.xml.bind.JAXBContext context =
> org_xmlsoap_schemas_ws__2004__08_addressing_EndpointReferenceType;
> javax.xml.bind.Marshaller marshaller =
> context.createMarshaller();
>
> marshaller.setProperty(javax.xml.bind.Marshaller.JAXB_FRAGMENT,
> Boolean.TRUE);
> JaxbRIDataSource source = new JaxbRIDataSource(
> org.xmlsoap.schemas.ws._2004._08.addressing.EndpointReferenceType.class,
> param,
>
> marshaller,
>
> "http://schemas.xmlsoap.org/ws/2004/08/addressing",
>
> "ReplyTo");
> org.apache.axiom.om.OMNamespace namespace =
> factory.createOMNamespace("",
>
> null);
> return factory.createOMElement(source, "ReplyTo",
> namespace);
> } catch (javax.xml.bind.JAXBException bex){
> throw new RuntimeException(bex);
> }
> }
> To duplicate use the attached WSDL. Download the
> http://schemas.xmlsoap.org/ws/2004/08/addressing schema to "addressing.xsd"
> in the same directory as the "test.wsdl" and run the following command:
> wsdl2java -uri test.wsdl -o gen-src -p com.test -s -t -d jaxbri
--
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
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]