You're slightly backwords...  :-)

You can use CXF DataBinding objects as JAX-RS providers, but not the other 
way around.   Thus, the JAX-RS XSLT thing isn't usable with a SOAP based 
service.

One option for you may be to configure in the SAAJ interceptor and then 
write a simple interceptor that would take the SAAJ model (it's a DOM) and 
manipulate the SAAJ model, possibly even via XSLT.

Dan


On Wednesday, June 06, 2012 03:31:07 AM n99 wrote:
> Hello
> 
> I've scaffolded a web service server using Spring STS and MyEclipse for
> spring and was interested in transforming the out going soap message.
> 
> First thing I wanted to transform was the namespace prefixing so my spring
> config looked like this
> 
>       <jaxws:endpoint xmlns:tns="https://etc etc">
>               <jaxws:dataBinding>
>                       <ref bean="data-binding"/>
>               </jaxws:dataBinding>
>       </jaxws:endpoint>
> 
> 
>               <bean ref="data-binding"
> class="org.apache.cxf.jaxb.JAXBDataBinding"> <property
> name="namespaceMap">
>                       <map>
>                               <entry>
>                                          <key>
>                                     <value>http://thing</value>
>                                  </key>
>                                  <value>BeepBeep</value>
>                               </entry>
>                               </map>
>               </property>
>       </bean>
> 
> this worked fine and my soap message was outputted completely and
> correctly.
> 
> <as>
>       <BeepBeep: b>
>               <stuff/>
>       </BeepBeep:b>
>       <c>
>            <more stuff/>
>       </c>
> </as>
> 
> Second I needed to change the soap xml but more than the transform
> features at http://cxf.apache.org/docs/transformationfeature.html allowed
> 
> so I read up about the XSLTJaxbProvider at
> http://cxf.apache.org/docs/jax-rs-advanced-xml.html and plugging in a rs
> provider to a ws binding at
> http://cxf.apache.org/docs/jax-rs-data-bindings.html#JAX-RSDataBindings-CX
> FDataBindingsasJAXRSproviders to create the following config
> 
> 
> <jaxws:endpoint xmlns:tns="https://etc etc">
>               <jaxws:dataBinding>
>                    <ref bean="jaxrs-data-binding"/>
>         </jaxws:dataBinding>
> </jaxws:endpoint>
> 
> <bean id="jaxrs-data-binding"
> class="org.apache.cxf.jaxrs.provider.JAXRSDataBinding">
>                          <property name="namespaceMap">
>          <map>
>               <entry>
>                          <key>
>                       <value>http://thing</value>
>                    </key>
>                    <value>BeepBeep</value>
>               </entry>
>                       </map>
>         </property>
>         <property name="provider" ref="xsltProvider"/>
> </bean>
> 
>         <bean id="xsltProvider"
> class="org.apache.cxf.jaxrs.provider.XSLTJaxbProvider">
>                       <property name="outTemplate"
> value="classpath:/WEB-INF/templates/transform.xsl"/>
>       </bean>
> 
> 
> now I get an JAXB Exception: Class not known to this context for classes b
> and c and even if I have an empty xslt stylesheet I get the xml
> 
> <as/>
> 
> I have tinkered with the config to every end and added  @XmlSeeAlso all
> over the place to no avail.
> 
> I guess I have to ask is what I've done possible in config? The fact that
> it all works as expected before I try and wire in the rs provider as a ws
> databinding might mean it's not?
> 
> Any advice greatly appreciated. Maybe there is a better way to use
> xslt/manipulate the xml?
> 
> Thanks
> 
> --
> View this message in context:
> http://cxf.547215.n5.nabble.com/Using-jaxrs-XSLTJaxbProvider-with-jaxws-e
> ndpoint-through-JAXRSDataBinding-Is-it-possible-tp5709183.html Sent from
> the cxf-user mailing list archive at Nabble.com.
-- 
Daniel Kulp
[email protected] - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com

Reply via email to