Я пытаюсь использовать SOAP API, используя Джерси в Java, у меня есть следующий код для заголовков и параметров запроса и полного вызова:
String host = "172.18.101.2";
String port = "80";
System.setProperty("https.proxyHost", host);
System.setProperty("http.proxyHost", host);
System.setProperty("http.proxyPort", port);
System.setProperty("https.proxyPort", port);
SSLUtilities.trustAllHostnames();
SSLUtilities.trustAllHttpsCertificates();
final String API_URI = "https://221.120.211.69:443/abl-api/uat/ApiConnectFTwsdlDefinitionHttpService";
final ClientConfig config = new DefaultClientConfig();
final Client client = Client.create(config);
MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
queryParams.add("SystemName", "CDC");
queryParams.add("RequestID", "222");
queryParams.add("TenantID", "abc11323===+");
queryParams.add("CreditAccount", "0010000108290010");
queryParams.add("DebitAmount", "100");
queryParams.add("MappingID", "Remarks");
queryParams.add("Narration", "remarks");
WebResource webResource = client.resource(API_URI);
JSONObject requestObj = new JSONObject();
requestObj.put("SystemName", "CDC");
requestObj.put("RequestID", "222");
requestObj.put("TenantID", "abc11323===+");
requestObj.put("CreditAccount", "0010000108290010");
requestObj.put("DebitAmount", "100");
requestObj.put("MappingID", "Remarks");
requestObj.put("Narration", "remarks");
ClientResponse responseMsg = webResource
.queryParams(queryParams)
.header("content-type", MediaType.TEXT_XML)
.header("accept", MediaType.APPLICATION_JSON)
.header("SOAPAction", "http://ApiConnectFTwsdlDefinition/FundsTransfer")
.header("X-IBM-Client-Id", "0146b9a4-7e99-4c83-8e9e-6049cfec55da")
.header("Authorization", "Bearer "+ authCode)
.post(ClientResponse.class, requestObj);
// System.out.println(responseMsg.getEntity(String.class));
int PRETTY_PRINT_INDENT_FACTOR = 4;
JSONObject xmlJSONObj = XML.toJSONObject(responseMsg.getEntity(String.class));
String jsonPrettyPrintString = xmlJSONObj.toString(PRETTY_PRINT_INDENT_FACTOR);
System.out.println(jsonPrettyPrintString);
Когда я выполняю ошибку thrown: com.sun.jersey.api.client.ClientHandlerException: не был найден модуль записи тела сообщения для типа Java, класса org. json .JSONObject и мультимедийного типа MIME, text / xml.
Я знаю его показ из-за заголовка = text / xml, так как ранее я использовал application / json, и он был разрешен с использованием библиотек GSON и genson. Теперь ответ API изменился на Text / XML, но он не разрешается.
Пожалуйста, помогите.