Tengo un servicio simple que está anotado con anotaciones JAX-RS e incluye la anotación @Produces("application/json")
. He fijado los siguientes propiedades cuando me registro del servicio (estoy usando DS pero eso no debería importar):Devolver JSON desde un servicio RESTful usando CXF DOSGI
service.exported.interfaces -> *
service.exported.configs -> org.apache.cxf.rs
org.apache.cxf.rs.address -> myURI
Cuando ejecuto mi aplicación que puede golpear la URL, pero mi navegador devuelve:
No message body writer has been found for response class MyClass.
Mis OSGi consola muestra:
Jan 11, 2012 2:29:48 PM org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor writeResponseErrorMessage
WARNING: No message body writer has been found for response class MyClass.
leí el documentation y que tal vez tenía que registrar un proveedor de JSON. En may Activator agregué:
bundleContext.registerService(new String[] { "javax.ws.rs.ext.MessageBodyReader",
"javax.ws.rs.ext.MessageBodyWriter" },
new org.apache.cxf.jaxrs.provider.JSONProvider(), null);
pero esto no ha hecho ninguna diferencia.
Cómo repare el "No se ha encontrado ningún escritor de cuerpo de mensaje para la clase de respuesta MyClass". ¿mensaje de error?
Vaya, el valor predeterminado es Jettison, no Jackson, pero es el mismo JAXB ... –