У меня есть простой сервис, который аннотируется аннотациями JAX-RS и включает аннотацию @Produces("application/json")
. Я создал следующие свойства, когда я зарегистрировать службу (я использую DS, но это не имеет значения):Возврат JSON из службы RESTful с использованием CXF DOSGI
service.exported.interfaces -> *
service.exported.configs -> org.apache.cxf.rs
org.apache.cxf.rs.address -> myURI
Когда я запускаю мое приложение, я могу ударить URL, но мой браузер возвращает:
No message body writer has been found for response class MyClass.
Моих OS консоль отображает:
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.
Я прочитал documentation и, возможно, думал, что мне нужно, чтобы зарегистрировать поставщик JSON. In may Activator я добавил:
bundleContext.registerService(new String[] { "javax.ws.rs.ext.MessageBodyReader",
"javax.ws.rs.ext.MessageBodyWriter" },
new org.apache.cxf.jaxrs.provider.JSONProvider(), null);
, но это не имеет никакого значения.
Как исправить «Никакого писателя тела сообщения не найдено для класса ответа MyClass». сообщение об ошибке?
Упс, по умолчанию это Jettison, а не Джексон, но это то же самое JAXB ... –