OK - been experimenting a little - it's due to missing XmlRootElement annotations.
If I "inline" the type definition it will work. This works: <element name="customerCreateRequest"> <complexType> <annotation> <documentation> Create a new distinct customer. Customers have distinct customerIds within an organization. </documentation> </annotation> <sequence> <element name="customer" type="customer:customerType" /> </sequence> </complexType> </element> instead of the more reusable (will not work): <element name="customerCreateRequest" type="tns:customerCreateRequest"> <complexType name="customerCreateRequest"> <annotation> <documentation> Create a new distinct customer. Customers have distinct customerIds within an organization. </documentation> </annotation> <sequence> <element name="customer" type="customer:customerType" /> </sequence> </complexType> Is there no way around this? I thought that was what @XmlName was for. 2013/10/7 David Karlsen <[email protected]> > Hi. > > I did this: > @POST > @Consumes( { MediaType.APPLICATION_XML} ) > @Produces( { MediaType.APPLICATION_XML } ) > public void testCreate( @XMLName( value = > "{urn:srv.jfr.tac.fs.edb.com:ws:customer:v1}customerCreateRequest" > ) CustomerCreateRequest customerCreateRequest ) { > > And have also cleaned up the config. > > > 2013/10/7 Sergey Beryozkin <[email protected]> > >> Hi David >> >> On 07/10/13 10:54, David Karlsen wrote: >> >>> Hi. >>> >>> I have an existing jax-ws service that I now additionally want to expose >>> as >>> a REST/jax-rs service. >>> I've configured it like this: *http://pastebin.com/h7cy8ZYB * >>> The wadl generated looks like: *http://pastebin.com/QQRbNb3n * >>> >>> I would expect it to refer to the request /response types not to look >>> like >>> <representation mediaType="application/xml"/> >>> >>> but rather something like: >>> <representation mediaType="application/xml" >>> type="tns:**customerCreateRequest" /> >>> >>> I've tried adding @XmlName etc but nothing changes. >>> >> >> I suspect the reason you don't have the proper mappings generated is that >> the JAX-WS generated code has the bean parameters with JAXB XMLType only >> and the JAX-RS runtime does wrap/unwrap the types. >> >> How do you use XMLName ? It needs to contain extended QNames, example "{ >> http://myns}MyRootElement". >> >> As a side note, the configuration can be simplified: >> - two conflicting JAXB providers, need to drop either jaxrs:dataBinding >> or JAXBProvider, >> - two Jackson providers, I'm not sure which one will work better in your >> case, please try >> - re the schema validation, you need to get that schema list set up only >> once, using SchemaHandler makes sense only if you reuse it between CXF JAXB >> and JSON providers, but you don't, so drop it; next , if you decide to keep >> JAXBProvider then drop jaxrs:schemaLocations >> >> Cheers, Sergey >> >> >> >> >> >>> Any hints? >>> >>> -- >>> David J. M. Karlsen - >>> http://www.linkedin.com/in/**davidkarlsen<http://www.linkedin.com/in/davidkarlsen> >>> >>> >> > > > -- > -- > David J. M. Karlsen - http://www.linkedin.com/in/davidkarlsen > -- -- David J. M. Karlsen - http://www.linkedin.com/in/davidkarlsen
