Spring framework y tomcat: ¿cómo habilitar el seguimiento de enlaces simbólicos a carpetas?

Tengo una aplicación web escrita en Java + marco de primavera. El servidor de aplicaciones utilizado es Tomcat. Supongamos que el nombre de la aplicación web es "sample-webapp". Si creo un enlace simbólico en sample-webapp/resources/ como este-

ls -l

.../sample-webapp/resources/temp-csv-ubicación -> /tmp/csv-ubicación

Aquí "temp-csv-ubicación" es un enlace simbólico.

Ahora, si me refiero a un archivo dentro de este directorio en una página jsp, algo como

<a href="http://localhost:8080/sample-webapp/resources/temp-csv-location/test.csv">Click</a>

Me da un error 404. Confirmé que el archivo test.csv está presente en /tmp/csv-location/. Confirmé los permisos también. En el uso simple de Tomcat, podríamos agregar "allowLinking=true" en context.xml.

¿Hay alguna manera de hacer esto en el marco de primavera?

preguntado el 30 de junio de 12 a las 15:06

1 Respuestas

Una solución alternativa y genérica para su problema es escribir un Servlet que maneje todas las solicitudes que calculen su ruta de inicio, luego el Servlet manejará el suministro del archivo resolviendo su ruta.

Para configurar el Servlet, debe poner esto en su web.xml

<filter>
    <filter-name>csvFileDownloadServlet</filter-name>
    <filter-class>edu.sharif.resource.CSVFileDownloadServlet</filter-class>
</filter>
<filter-mapping>
    <filter-name>csvFileDownloadServlet</filter-name>
    <url-pattern>/resources/temp-csv-location/*</url-pattern>
</filter-mapping>

Luego debe escribir la clase edu.sharif.resource.CSVFileDownloadServlet. Puede encontrar varias implementaciones para este problema a través de una búsqueda simple, por ejemplo:

contestado el 23 de mayo de 17 a las 13:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.