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-CXFDataBindingsasJAXRSproviders
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-endpoint-through-JAXRSDataBinding-Is-it-possible-tp5709183.html
Sent from the cxf-user mailing list archive at Nabble.com.