Ho un servizio semplice annotato con annotazioni JAX-RS e include l'annotazione @Produces("application/json")
. Ho installato le seguenti proprietà quando mi registro del servizio (sto usando DS, ma che non dovrebbe importare):Restituzione di JSON da un servizio RESTful utilizzando CXF DOSGI
service.exported.interfaces -> *
service.exported.configs -> org.apache.cxf.rs
org.apache.cxf.rs.address -> myURI
Quando eseguo la mia domanda posso colpire l'URL, ma il browser restituisce:
No message body writer has been found for response class MyClass.
miei OSGi console display:
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.
ho letto il documentation e pensato che forse avevo bisogno di registrare un provider JSON. In maggio Activator ho aggiunto:
bundleContext.registerService(new String[] { "javax.ws.rs.ext.MessageBodyReader",
"javax.ws.rs.ext.MessageBodyWriter" },
new org.apache.cxf.jaxrs.provider.JSONProvider(), null);
ma questo non ha fatto alcuna differenza.
Come correggere "Non è stato trovato alcun body writer per la classe di risposta MyClass." messaggio di errore?
Oops, il valore predefinito è Jettison, non Jackson, ma è lo stesso JAXB ... –