У нас есть устаревшее приложение, которое использует веб-службы Java (JAX-WS) и работает на Glassfish 4.1.1. Мы хотим реализовать сжатие как ответа, так и запроса. (Мы знаем, что сжатые запросы могут быть угрозой безопасности, но мы готовы принять это, потому что все клиенты являются внутренними.) Включение параметра GF для сжатия только сжимает ответ. Если я отправляю сжатое тело запроса, я получаю сообщение об ошибке, которое указывает, что сообщение SOAP содержало недопустимый символ, что говорит мне, что GF не распаковывает тело запроса.
Поскольку GF не будет автоматически распаковывать запрос, я пытался изменить само устаревшее приложение, чтобы выполнить распаковку. Я пробовал следующее:
Обработчик сообщений SOAP. Это не работает, потому что обработчик вызывается слишком поздно; в этот момент демаршаллинг SOAP-сообщения уже не удался, потому что демаршаллер получил двоичные данные.
Фильтр сервлетов. Я попытался настроить тот, который вызывался по любому URL, но он никогда не срабатывает при вызовах веб-службы. Я не слишком знаком с этой системой, но не похоже, что веб-сервис реализован в виде сервлета.
Мой следующий вариант - попытаться настроить прокси-сервер, который принимает необработанный запрос, распаковывает его и перенаправляет в веб-службу.
Прежде чем идти по этому пути, у кого-нибудь есть более простые рекомендации? То, что я пытаюсь сделать, даже возможно? Большое спасибо заранее!