Pregunta

Estaba usando lo siguiente en web.xml para configurar un servlet para generar PDF de forma dinámica.

<servlet-mapping>
    <servlet-name>pdfServlet</servlet-name>
    <url-pattern>*.pdf</url-pattern>
</servlet-mapping>

Ahora, también tengo que servir algunos archivos PDF estáticos. ¿Cuál es la forma más limpia de configurar eso? Actualmente solo estoy sirviendo cuatro o cinco archivos dinámicos, y no espero que aumente, si es que eso ayuda.

¿Fue útil?

Solución

No necesitas configurar archivos estáticos en absoluto; Si Tomcat puede encontrar un archivo, lo servirá. La configuración solo es necesaria cuando desea que Tomcat invoque algún código.

Otros consejos

Este es un problema sorprendentemente irritante al que todavía no he encontrado una solución satisfactoria.

La base del problema, como estoy seguro, es que su web.xml está configurado para enviar todas las solicitudes de * .pdf a su servlet Spring. Lo más obvio es intentar que el servlet reconozca qué solicitudes son para archivos PDF estáticos y luego reenviar la solicitud internamente a ese archivo estático, pero como es probable que el archivo termine con .pdf, la solicitud simplemente volverá a través del servlet de nuevo, ad nauseum.

La única solución para esto que he intentado es hacer que el servlet lea manualmente el PDF estático desde el contexto del servlet (utilizando ServletContext.getResource () ), y lo escriba en la salida del servlet transmisión, asegurándose de establecer los distintos encabezados correctamente. No es muy agradable.

La única opción que se me ocurre es hacer que url-pattern en web.xml sea un poco menos amplio, de modo que solo las solicitudes dinámicas de PDF se enruten a El servlet y las solicitudes de archivos PDF estáticos se enrutan al archivo, pero eso requeriría algún tipo de convención de nomenclatura para sus documentos, que puede no ser una opción.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top