Ошибка быстрее xml ... MismatchedInputException при запуске на Heroku: нет содержимого для сопоставления из-за конца ввода - PullRequest
0 голосов
/ 04 февраля 2020

Я использую Джексона [1] для прямой десериализации файла json.

Концептуально это выглядит следующим образом:

ObjectMapper objectMapper = new ObjectMapper();
ObjectReader objectReader = objectMapper.readerFor(DirectionsResponse.class);
DirectionsResponse result = objectReader.readValue(jsonString);

Это хорошо работает в локально запущенном приложении Spring-Boot, но не работает при запуске приложения в качестве развернутой WAR на Heroku. На Heroku я получаю следующее исключение: com.fasterxml.jackson.databind.exc.MismatchedInputException: No content to map due to end-of-input.

По какой-то причине - так кажется - jsonString не остается полностью доступным при запуске на Heroku, что странно, потому что оно полностью читается перед его передачей на objectReader.

Мысль о том, как изолировать проблему, будет высоко оценена.

jsonString читается из InputStream следующим образом:

InputStream is = DirectionsResponse.class.getClassLoader().getResourceAsStream(resourceName);

// which is used to...

private static String readFromInputStream(InputStream inputStream) throws IOException
{
    StringBuilder resultStringBuilder = new StringBuilder();
    try (BufferedReader br = new BufferedReader(new InputStreamReader(inputStream)))
    {
        String line;
        while ((line = br.readLine()) != null)
        {
            resultStringBuilder.append(line).append("\n");
        }
    }
    return resultStringBuilder.toString();
}

[1] - com.faster xml .jackson.core: jackson-databind: jar: 2.10.0

1 Ответ

0 голосов
/ 08 февраля 2020

Эта проблема исчезла после того, как я добавил log.info(length: "+ resultStringBuilder.toString().length()); непосредственно перед возвратом resultStringBuilder.toString() в конце метода, поэтому я закрываю этот вопрос.

Спасибо за помощь ...!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...