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
- 如何将pfx文件转换为jks然后使用它来通过使用wsdl生成的类来签署传出的soap请求
- 使用CXF捕获webserviceexception:NoClassDefFoundError:SOAPFaultBuilder
- CXF 2.2.12:如何在客户端关闭模式validation
- 在自定义拦截器中捕获SOAP Fault错误(Soap12FaultOutInterceptor)
- 如何将wsdl中定义的Soap Header添加到CXF中的Web服务客户端?
- CXF客户端SOAP消息格式化
- 调用webservice的问题 – javax.xml.ws.WebServiceException和类没有名称的属性
- 通过Maven的CXF 2.7.x Woodstox兼容性
- 使用Apache CXF注释的UsernameToken WS-Security(WSS4J)