Json терпит неудачу при десериализации объекта с изображением.Событие START_ARRAY не найдено - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть этот DAO:

@Entity
@Table(name="housing")
public class HousingObject implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    private String idhousing;

    private String owner;

    @Lob
    private byte[] photo;

    private int guests;

    * more stuff here *

    public HousingObject() {

    }

    * getters and setters *

Мой API выполняет поиск всех корпусов, принадлежащих конкретному пользователю, и сохраняет все эти объекты в списке:

@RequestMapping(value = "/housings", method = RequestMethod.GET)
public @ResponseBody ResponseEntity<?> 
getAllHousingsbyEmail(@RequestParam("email") String email){

    Optional<List<HousingObject>> lista = daoHsg.findByowner(email);
    if (lista.isPresent()){
        return new ResponseEntity<>(lista, HttpStatus.OK);
    }

Тестирование с использованиемПочтальон возвращает список в формате JSON: enter image description here

Проблема: Когда я пытаюсь вызвать API из моего клиента, у меня возникают проблемы с чтением ответа объекта:

ClientConfig config = new ClientConfig();
    Client client = ClientBuilder.newClient();

    WebTarget webResource = client.target("http://localhost:10505").path("housings").queryParam("email",mail);

    Invocation.Builder invocationBuilder = webResource.request(MediaType.APPLICATION_JSON);
    Response respuesta = invocationBuilder.get();
    int status = respuesta.getStatus();
    if (status != 200) {

        request.setAttribute("listaAlojamientos", housingResult);
        return "not_found.jsp";
    }
    HousingObject[] listHousings = respuesta.readEntity(HousingObject[].class);

В основном выдает исключение на readEntity, а трассировка стека:

javax.ws.rs.ProcessingException: 
Error deserializing object from entity stream.
Caused by: javax.json.bind.JsonbException: Internal error: 
Event START_ARRAY not found. Last data: [EVENT: KEY_NAME KEY_NAME: guests]

Вопросы: почему json не работает на readEntity?Я думаю, что это, вероятно, из-за моего имиджа.Я храню свои изображения в BLOB-объектах, потому что они byte[].Почему почтальон получает список домов, а java json терпит неудачу?

...