Я пытаюсь сериализовать ответ jax-rs на json string.Convert InboundJaxrsResponse to json string
Ответ от сервера в формате JSON, и я получаю его от джерси клиента с:
Response resp = target.request().method("PUT", Entity.json(payloadBean))
где payloadBean моей просьбы JSon. Все работает нормально, но я не могу преобразовать resp в строку json, чтобы зарегистрировать его.
Если я пытаюсь:
String s = EntityUtils.toString((HttpEntity) resp.getEntity());
я получаю:
org.glassfish.jersey.client.internal.HttpUrlConnector cannot be cast to org.apache.http.HttpEntity
Кстати, если я не отбрасываю к HttpEntity, компилятор говорит:
toString (org.apache.http.HttpEntity) in EntityUtils cannot be applied to (java.lang.Object).
Моего соответствующий импорт являются:
import org.apache.http.HttpEntity;
import org.apache.http.util.EntityUtils;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.Response;
Любые идеи?
Если я пытаюсь это к делу (а) я получаю: «Ошибка чтения из объекта из входного потока» с детальным сообщением «ком. quickxml.jackson.databind.JsonMappingException: не удается создать экземпляр org.apache.http.HttpEntity, проблема: абстрактные типы либо должны быть сопоставлены конкретным типам, либо иметь пользовательский десериализатор, либо создаваться с дополнительной информацией о типе в [Источник: org.glassfish.jersey.me[email protected]1c802d1d; строка: 1, column: 1] " – chefarov
Почему вы пытаетесь создать HttpEntity. Если вы хотите JSON, создайте POJO. Это то, что Джексон пытается сделать, превратить JSON в POJO типа HttpEntity. Он не может, поэтому вы получаете исключение. Если вы не хотите создавать POJO, просто извлеките его как String и работайте со String. –
ОК, я понял. Дело в том, что ответ может представлять собой много разных классов POJO, поэтому я искал общий способ разобрать любой структурированный ответ json. В любом случае, спасибо за ваше время – chefarov