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.

Reply via email to