Ok, I've made that switch, but I'm still confused as how I need to setup the javax.ws.rs.core.Response. How would I take an Object and convert it into a json string? Below is the xml sample I created, any suggestions on converting this to a json implementation would be greatly appreciated.
import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Response; @Path("/chartsvcs/") public class sample{ @POST @Path("/topspamsender") @Produces({"application/xml", "application/json"}) public Response getTopSpamSenderData(ChartSpecification chartSpec) throws Exception { Response httpresp; String httpbody; httpresp=null; Object o = topSpamSenderService.getTopSpamSender(chartSpec); //just retrieves an object to be returned to the consumer if (o != null) { httpbody = ObjToXmlStr(o, false); httpresp = setupResponse(Response.ok(httpbody)).build(); } else { httpresp = setupResponse(Response.noContent()).build(); } return httpresp; } /** * Converts a Pojo to JAXB string * @param obj * @param includeXmlVerHdr Indicates if returned string should be have the XML version tag * @return JAXB representation of the object */ private static String ObjToXmlStr(Object obj, boolean includeXmlVerHdr) { try { StringWriter sw = new StringWriter(); JAXBContext jaxbctx = JAXBContext.newInstance(obj.getClass()); Marshaller marshaller = jaxbctx.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8"); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.marshal(obj, sw); if (!includeXmlVerHdr) { String str = sw.toString(); int beginIndex = str.toString().indexOf(">"); return str.substring(beginIndex + 2); } return sw.toString(); } catch (Exception e) { log.error("Failed to create XML from Object", e); } return null; } } KARR, DAVID (ATTCINW) wrote: > >> -----Original Message----- >> From: cgswtsu78 [mailto:cg...@proofpoint.com] >> Sent: Tuesday, December 01, 2009 2:44 PM >> To: users@cxf.apache.org >> Subject: How to use CXF and JSON >> >> >> Hello, >> >> I'm very new to building RESTful webservices using apache cxf and I >> currently have a small sample that returns a javax.ws.rs.core.Response >> in >> xml format using the @ProduceMime("application/xml"). My question is >> how do >> I return a javax.ws.rs.core.Response in JSON format? I've tried using >> @ProduceMime("text/json"), @ProduceMime("application/json"). I'm > using >> JAXB >> to convert the object to xml and then rebuilding the response, but I'm >> not >> sure how to rebuild the response when I return json. Is this possible >> with >> CXF? > > The "old" "@ProduceMime" annotation has been replaced with "@Produces". > > The following will make a method produce either XML or JSON, depending > on the Accept header value: > > @Produces({"application/xml", "application/json"}) > > -- View this message in context: http://old.nabble.com/How-to-use-CXF-and-JSON-tp26600386p26600710.html Sent from the cxf-user mailing list archive at Nabble.com.