Hi there,
I am using Apache CXF 2.4.1 and I want to POST a JSON-String to my
RestFul-Service.
So I configure the following within my Spring 3.x configuration:
<util:map id="nstojns" map-class="java.util.HashMap">
<entry key="http://xyz.com/serviceapi" value="serviceapi"/>
</util:map>
<bean id="jsonProvider" class="org.apache.cxf.jaxrs.provider.JSONProvider">
<property name="namespaceMap" ref="nstojns"/>
<property name="ignoreNamespaces" value="true"/>
<property name="inTransformElements">
<map>
<entry key="FeedbackData"
value="{http://xyz.com/serviceapi}FeedbackData"/>
<entry key="FeedbackEvent"
value="{http://xyz.com/serviceapi}FeedbackEvent"/>
</map>
</property>
</bean>
<jaxrs:server id="cxfService"
address="${cxf.endpoint.shopservice.address}">
<jaxrs:serviceFactories>
<ref bean="feedbackFacadeFactory"/>
</jaxrs:serviceFactories>
<jaxrs:providers>
<ref bean="jsonProvider"/>
</jaxrs:providers>
</jaxrs:server>
Now I can call my service and do a POST sending a JSON-Object like this:
{"FeedbackData":{"FeedbackEvent":{"@accessProfile":"Test"}}}
and the binding is done by JAXB based on a provided XSD without any problems.
However I have to mention the ugly "@" for my attributes. Is there any way to
configure CXF and/or the JSONProvider not to have to use the "@" as a marker
for the attribute? If yes, how?
Any help will be appreciated.
Regards,
Christian