Java CXF Rest客户端不处理我的对象

Java CXF Rest客户端不处理我的对象,java,json,cxf,jackson,Java,Json,Cxf,Jackson,我正在使用JAXRSClientFactory从RESTful web服务的接口创建一个CXF客户机代理 我的接口表示CRUD操作,因此我的create接受一个自定义对象并从中创建一个DB条目。当我将对象传递给create方法时,我会得到以下结果: org.apache.cxf.jaxrs.client.ClientWebApplicationException: org.apache.cxf.interceptor.Fault: .No message body writer has been

我正在使用JAXRSClientFactory从RESTful web服务的接口创建一个CXF客户机代理

我的接口表示CRUD操作,因此我的create接受一个自定义对象并从中创建一个DB条目。当我将对象传递给create方法时,我会得到以下结果:

org.apache.cxf.jaxrs.client.ClientWebApplicationException: org.apache.cxf.interceptor.Fault: .No message body writer has been found for class : class com.example.Calss, ContentType : application/json.
我通过将带有
JacksonJsonProvider
的提供者列表添加到
JAXRSClientFactory.create
方法解决了这个问题,该方法解决了封送对象的问题

然后我尝试执行读取操作,该操作返回一个
响应
对象,该对象的实体是一个自定义对象。当我尝试读取时,会出现以下错误:

org.apache.cxf.jaxrs.client.ClientWebApplicationException: .Problem with reading the response message, class : class javax.ws.rs.core.Response, ContentType : application/json.
我可以通过从我的
JAXRSClientFactory.create
中删除提供程序来解决这个问题,但这会导致create操作失败


我似乎无法解决此问题(使用相同的客户端对象时)。还有其他人遇到过这种情况吗?我做错了什么?

这个问题源于使用Jackson作为JSON映射器。在我的接口定义中,我返回一个
响应
对象,Jackson/CXF不知道如何处理它,所以Jackson没有编写它

解决办法是:

JacksonJsonProvider provider = new JacksonJsonProvider();
provider.addUntouchable(Response.class);
providerList.add(provider);         
webService = JAXRSClientFactory.create(url, IWebService.class, providerList);

我为此苦苦挣扎,我发现所有的例子都提到了spring配置!如果在JSONProvider之前使用,还可以将注释模型类中的导入更改为com.fasterxml.jackson.annotation。