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" />