Прблема после пересборки "modern", не докачивает страницу

Viktora year ago

Удаление фильтра помогло. Оно решило одну проблему, НО создало много новых, и лучше так не делать.
Сама проблема была в файле : - https://github.com/traccar/traccar/blob/master/src/main/java/org/traccar/web/OverrideFilter.java

Место с ошибкой

String alteredContent = new String(wrappedResponse.getCapture())
                        .replace("${title}", title)
                        .replace("${description}", description)
                        .replace("${colorPrimary}", colorPrimary);

                response.setContentLength(alteredContent.length());
                response.getOutputStream().write(alteredContent.getBytes());

Повторный вызов String(wrappedResponse.getCapture() возвращает ТОЛЬКО сам документ, не учитывая заголовки, сам ответ становися короче на (приблизительно) 400 БАЙТ. Вызов response.setContentLength должен получать правильную длинну ответа, модифицированый документ (вместе с заголовками).
Решение вопроса:

/* */
String alteredContent = new String(bytes) /* У нас уже есть ПОЛНЫЙ массив байтов, правильной длинны,  */
                        .replace("${title}", title)
                        .replace("${description}", description)
                        .replace("${colorPrimary}", colorPrimary); /* Преобразовали в строку, произвели поиск/замену */

                byte[] AC_bytes = alteredContent.getBytes(); /* Преобразовали модифицированную строку опять в массив, http заголовки остались на месте */
                int AC_B_length = AC_bytes.length; /* Получили длину ВСЕГО массива, `alteredContent.length()` вернет ТОЛЬКО длину документа*/

                response.setContentLength(AC_B_length);
                response.getOutputStream().write(AC_bytes);

Все заработало, документ проходит фильтр и не обрезается, все косяки ушли...

Anton Tananaeva year ago

Почему тогда у меня всё работает? У вас случайно нету прокси какого-нибудь перед сервером?

Viktora year ago

У вас случайно нету прокси какого-нибудь перед сервером? - Есть, но он тут ни при чем, тестирование происходило и локально и через reverse proxy, результат был одинаковый. Локально, браузеры Firefox, Chrome, Opera, удаленно Chrome, Opera, Internet Explorer.
Почему тогда у меня всё работает? - Вероятно, вы не добавляли кучу МЕТА ТЕГОВ содержащих кириллицу, плюс МЕТА ТЕГИ для open graph. Самое главное, у меня, на даный момент все работает штатно, документ проходит фильтр, кастомизируется, не обрезается. Краулер и индексатор документ прожевывают и остаются довольны.

Anton Tananaeva year ago