JAXRS客户端找不到邮件正文编写器

我有一个像这样配置的jaxrs客户端:

      

但是当我发送请求时,我得到以下exception:

 Caused by: org.apache.cxf.interceptor.Fault: .No message body writer has been found for class : class com.test.RequestObject, ContentType : application/json. at org.apache.cxf.jaxrs.client.ClientProxyImpl$BodyWriter.handleMessage(ClientProxyImpl.java:646) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) at org.apache.cxf.jaxrs.client.ClientProxyImpl.doChainedInvocation(ClientProxyImpl.java:527) ... 47 more 

我的RestProxy类看起来像这样:

 @Component public interface RestProxy { @POST @Path("/getSomething") String getSomething(RequestObject RequestObject); } 

如果您使用的是Jackson JSON库,则需要将这些xml标记添加到应用程序上下文中。

    

如果您正在使用任何其他库,请将该bean添加到providers标记。 希望有所帮助!

如果您正在使用javax.ws.rs.client.Client ,请使用client.register(new JacksonJsonProvider());注册提供程序client.register(new JacksonJsonProvider());

这个答案指出了我正确的方向,但我必须添加两个部分才能使它在web.xml上运行

   jaxrs.providers  org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider (writeXsiType=false)   

并在客户电话上:

 List providers = new ArrayList<>(); // add custom providers if any providers.add(new JacksonJaxbJsonProvider()); WebClient client = WebClient.create(ENDPOINT_ADDRESS,providers);