Hi Scott

thanks for confirming it.

I've also added a 'marshalAsJaxbElement' boolean property (to be documented)
which can be used when all the returned instances need to be wrapped, just
to let users avoid creating big jaxbElementClassMap. The only limitation of
'marshalAsJaxbElement' is that it will not help in cases when namespaces are
needed, it will be just a simple class name that will be used.

cheers, Sergey


Scott Oster-2 wrote:
> 
> I was able to get this working using trunk.  Here¹s a simple example for
> those interested.
> 
> <?xml version="1.0" encoding="UTF-8"?>
> 
> <beans xmlns="http://www.springframework.org/schema/beans";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>   xmlns:jaxrs="http://cxf.apache.org/jaxrs";
> xmlns:jaxws="http://cxf.apache.org/jaxws";
> xmlns:util="http://www.springframework.org/schema/util";
>   xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd
> http://cxf.apache.org/jaxws
> http://cxf.apache.org/schemas/jaxws.xsd
> http://cxf.apache.org/jaxrs
> http://cxf.apache.org/schemas/jaxrs.xsd
> http://www.springframework.org/schema/util
> http://www.springframework.org/schema/util/spring-util-2.0.xsd";>
> 
> 
>   <util:map id="jaxbElementClassMap">
>         <entry key="org.foo.Bar" value="http://foo.org}Bar"/>
>   </util:map>
> 
>   <bean id="jaxbProvider"
> class="org.apache.cxf.jaxrs.provider.JAXBElementProvider">
>     <property name="jaxbElementClassMap" ref="jaxbElementClassMap" />
>   </bean>
> 
>   <bean id="impl" class="...Impl" />
> 
>   <jaxws:endpoint id="soapservice" implementor="#impl" address="..."
>     wsdlLocation="..." />
> 
>   <jaxrs:server id="restservice" address="...">
>     <jaxrs:providers>
>       <ref bean="jaxbProvider" />
>     </jaxrs:providers>
>     <jaxrs:serviceBeans>
>       <ref bean="impl" />
>     </jaxrs:serviceBeans>
>   </jaxrs:server>
> 
> 
> </beans>
> 
> 
> 
> Scott
> 
> 
> 
> 
> 
> From: Sergey Beryozkin <[email protected]>
> Date: Fri, 7 Aug 2009 05:36:00 -0700 (PDT)
> To: <[email protected]>
> Subject: RE: @XmlRootElement with jax-rs/jax-ws
> 
> 
> I have just updated JAXBElementProvider to properly wrap into JAXBElements
> those JAXB-generated types
> which are missing for whatever reasons @XmlRootElement annotations.
> 
> 'jaxbElementClassNames' list property I referred to earlier can only be
> used
> with classes which do have @XmlRootElement annotations, it is really only
> useful if the serialization of the derived types needs to be affected.
> 
> I've added a similar jaxbElementClassMap property which contains className
> to element name pairs, with element names being either simple names or
> expanded qnames.
> If an object class has no @XmlRootElement but its name is a key in this
> map
> then JAXBElement will be created internally and serialized properly.
> 
> I think it can be quite useful in a number of cases.
> 
> Scott - if you need this feature right now then let me know please and I
> can
> help you to create a custom JAXBElementProvider which will do it for you,
> till the fix makes it into the next 2.2.x release.
> 
> thanks, Sergey
> 
> 

-- 
View this message in context: 
http://www.nabble.com/%40XmlRootElement-with-jax-rs-jax-ws-tp24795823p24970054.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to