Проблема вкратце:
- GET на
pictures/pic.png
сначала нужно обработать Джерси, а затем самому коту
- Причины:
- Кот знает, когда отправить
304 Not Modified
. (Ответ зависит от клиента)
pic.png
может потребоваться обновление. Обновление должно произойти, когда сделан звонок на картинку.
Длинное объяснение:
У меня есть изображение по указанному URL. Картинка может нуждаться в обновлении. Я хочу сделать проверку свежести во время запроса. Поэтому я кодировал ресурс джерси, обрабатывающий запрос по URL-адресу изображения. При необходимости обновляет изображение в файловой системе. Я не хочу перекодировать механизм кэширования, но полагаюсь на реализацию Tomcat. Поэтому я хотел бы «переслать» запрос во внутренней цепочке обработчиков. Я пробовал return new Viewable(sb.toString());
, но для просмотра это не картинка. Какой тип возврата я могу использовать?
Я мог бы оставить конкретную картинку на другом URL и отправить 307 (временное перенаправление). Всегда посылать это как ответ кажется странным для меня.
Возможно, решение, имеющее обновление по методу "GET", является ошибочным по своему замыслу. Возможно, метод «PUT» / «POST» должен обновить картинку, а GET всегда должен обрабатываться tomcat.
Почему вопрос озаглавлен «Как мне эмулировать форвард на 404 в майке?». Особенность
com.sun.jersey.config.feature.FilterForwardOn404
делает то же самое: если ресурс не может быть обработан джерси, он пересылается через цепочку фильтров / сервлетов. Я думаю, что моя проблема похожа на это.
Смежный вопрос: Как вернуть изображение PNG из метода сервиса REST Джерси в браузер