[ https://issues.apache.org/jira/browse/CXF-3958?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Kulp reassigned CXF-3958: -------------------------------- Assignee: Daniel Kulp > Unmarshalling error when using collections of subtypes with the > StaxTransformFeature and 'out' transformations > -------------------------------------------------------------------------------------------------------------- > > Key: CXF-3958 > URL: https://issues.apache.org/jira/browse/CXF-3958 > Project: CXF > Issue Type: Bug > Components: Configuration, Core, JAXB Databinding > Affects Versions: 2.4, 2.5 > Reporter: Gareth Powell > Assignee: Daniel Kulp > Priority: Blocker > Attachments: cxf-versioning-bug.zip > > > We are using the StaxTransformFeature to aid with the versioning of a number > or our web services but have hit upon a problem when invoking a web method > that returns a collection of subtypes. When the StaxTransformFeature > (specifically, the out element transforms) are used, the resultant SOAP > payload is malformed, and JAXB cannot unmarshall the collection. Below is an > example of the payload we get back: > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:xsi="xsi"> > <soap:Body> > <ns2:getVehiclesResponse xmlns:ns2="example-1.0"> > <vehicles> > <vehicle xsi:type="ns2:bicycle" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <name>Marin</name> > </vehicle> > <vehicle xsi:type="ns2:car"> > <name>Ferrari</name> > </vehicle> > <vehicle xsi:type="ns2:motorcycle"> > <name>Yamaha</name> > </vehicle> > </vehicles> > </ns2:getVehiclesResponse> > </soap:Body> > </soap:Envelope> > When we invoke the same service, but without the StaxTransformFeature, then > we get correct xml and JAXB is happy. A correct payload is shown below. As > you can clearly see, the difference between the two is that the correct one > includes 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' for each > instance of the subtype, whereas the broken one, only has it for the first > element in the collection. I have attached a sample project in a zip file > that demonstrated the problem. It's a simple maven project, so just run 'mvn > test' to see the test failure. > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> > <soap:Body> > <ns2:getVehiclesResponse xmlns:ns2="example-1.0"> > <vehicles> > <vehicle xsi:type="ns2:bicycle" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <name>Marin</name> > </vehicle> > <vehicle xsi:type="ns2:car" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <name>Ferrari</name> > </vehicle> > <vehicle xsi:type="ns2:motorcycle" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <name>Yamaha</name> > </vehicle> > </vehicles> > </ns2:getVehiclesResponse> > </soap:Body> > </soap:Envelope> > This is a BLOCKER issue for us at the moment and we require urgent > resolution. Can you please advise as to whether there is something we can do > to either correct or work around the problem. -- 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