1
我正在使用Apache CXF来使用一个公司的Restful API。我收到以下错误。Apache CXF作为restful API的客户端 - 没有发现类消息正文writer
原因:org.apache.cxf.jaxrs.client.ClientWebApplicationException:org.apache.cxf.interceptor.Fault:.No已发现消息正文作者为class:class org.codehaus.jettison.json.JSONObject ,ContentType:application/json。
这里是我的代码:
public static void main(String[] args) {
try {
WebClient client = WebClient.create("https://aboti.securemanaged.com/rest/user");
client.type(MediaType.APPLICATION_JSON);
client.accept(MediaType.APPLICATION_JSON);
JSONObject obj = new JSONObject("{\"Id\":1,\"name\":\"Alice\",\"version\":\"1.0.0\"}");
System.out.println("Sending" + obj.toString());
//Response responseData = client.post(obj);
String responseData = client.post(obj, String.class);
System.out.println("Engine one started: " + responseData);
} catch (JSONException e) {
e.printStackTrace();
}
}
但是当我做卷曲I“m到处有效的JSON响应如下:
curl "https://aboti.securemanaged.com/rest/user" -X POST -d '{"Id":1,"name":"Alice","version":"1.0.0"}'
{"trackingId":1564,"statusCode":"registered","status":"1"}
我想在我的分发程序Servlet添加一个默认的提供者如下: 但我不知道如何配置WebClient实例以使用此默认提供程序..或者这不是问题吗?
<jaxrs:client id="serviceId" serviceClass="" address="https://aboti.securemanaged.com/rest/user">
<jaxrs:providers>
<bean class="org.codehaus.jackson.jaxrs.JacksonJsonProvider">
<property name="mapper" ref="jacksonMapper" />
</bean>
</jaxrs:providers>
</jaxrs:client>
<bean id="jacksonMapper" class="org.codehaus.jackson.map.ObjectMapper"/>
<bean id="jacksonProvider" class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" />