Это удивительно раздражающая проблема, которую я еще не нашел удовлетворительным решением.
Основой проблемы, как я уверен, вы знаете, является то, что ваш web.xml настроен на отправку всего запроса * .pdf на ваш сервлет Spring. Очевидная вещь, которую следует попробовать, - это заставить сервлет распознавать, какие запросы предназначены для статических PDF-файлов, и затем перенаправить запрос внутри этого статического файла, но поскольку файл, скорее всего, закончится с .pdf, запрос просто вернется через сервлет снова, ad nauseum.
Единственный обходной путь для этого, который я пробовал, заключается в том, чтобы сервлет вручную считывал статический PDF из контекста сервлета (используя ServletContext.getResource()
) и записывал его в выходной поток сервлета, следя за тем, чтобы правильно установить различные заголовки , Это не очень приятно.
Единственный вариант, о котором я могу думать, состоит в том, чтобы сделать url-pattern
в web.xml
немного менее широким, так что только запросы с динамическим PDF-запросом будут перенаправлены на сервлет, а запросы на статические PDF-файлы будут перенаправлены в файл, но это потребует какое-то соглашение об именах для ваших документов, что может и не быть вариантом.
Я ранее имел Tomcat, вызывая код во всех запросах PDF; все они были динамически построены iText. Теперь мне нужно, чтобы Tomcat также передавал статические файлы; не будет ли это поймано сервлет-картографированием? –
Ах, вы имеете в виду статические PDF-файлы (т. Е. Файлы, которые * соответствуют * правилу вашего URL-адреса). Хорошо, не могу вам помочь :) –
Yup. Да, похоже, единственное решение - индивидуально отобразить все динамические явно, без подстановочных знаков. –