I am new to CXF.
I want to GET result as JSON. My getCustomer() resource method is like this

@Path("/")
@Produces("application/json,application/xml")
public class Service
{
  @GET
  @Path("/getCustomers")
  public String getCustomers() {
    HashMap hm = new HashMap();
    hm.put("Hello", "World");
    return hm;
}

my bean.xml (which is referenced in web.xml is

<beans xmlns="http://www.springframework.org/schema/beans";
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  xmlns:jaxrs="http://cxf.apache.org/jaxrs";
  xsi:schemaLocation="
  http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans.xsd
  http://cxf.apache.org/jaxrs
  http://cxf.apache.org/schemas/jaxrs.xsd";>

  <import resource="classpath:META-INF/cxf/cxf.xml" />
  <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

  <jaxrs:server id="rest-api" address="/myservice">
    <jaxrs:serviceBeans>
      <ref bean="serviceBean"/>
    </jaxrs:serviceBeans>
    <jaxrs:extensionMappings>
      <entry key="json" value="application/json"/>
      <entry key="xml" value="application/xml"/>
    </jaxrs:extensionMappings>
    <jaxrs:providers>
      <ref bean="jaxbProvider"/>
      <ref bean="jsonProvider"/>
    </jaxrs:providers>
  </jaxrs:server>

  <bean id="serviceBean"
    class="my.Service"/>
  <bean id="jaxbProvider"
    class="org.apache.cxf.jaxrs.provider.JAXBElementProvider"/>
  <bean id="jsonProvider"
    class="org.apache.cxf.jaxrs.provider.JSONProvider"/>

</beans>

When I access the service it produces this message:-

No message body writer has been found for response class HashMap.

--
Regards
Pankaj

Reply via email to