You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Andreas Veithen (JIRA)" <ji...@apache.org> on 2012/07/31 22:36:34 UTC

[jira] [Resolved] (AXIS2-2902) jaxbri databinding cannot handle multiple XML elements of the same type

     [ 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: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org