2009-10-12 22 views
19

Necesito hacer un mapa de un directorio que contiene imágenes que residen fuera de la carpeta webapps de tomcat, para que la aplicación pueda servir esas imágenes.Asignación de un directorio fuera de la aplicación web a la URL en TOMCAT

Estoy haciendo una aplicación web J2EE ejecutándose bajo tomcat 6. El usuario puede cargar/eliminar imágenes en la aplicación. Actualmente almaceno estas imágenes en un directorio bajo la carpeta WebContent de la aplicación, pero quiero llevarlo fuera del tomcat (por ejemplo C:/test/images).

Necesito saber cómo puedo configurar Tomcat para que si puedo acceder a la URL http: //.com/images/abc.jpg, que sirve a la imagen desde el directorio C:/test/imágenes

Gracias,

Respuesta

31

Añadir un contexto <> en server.xml, dentro de la> etiqueta < anfitrión:

<Context path="/images" docBase="C:/test/images/" /> 

Docs será accesible en http://localhost:8080/images

+0

Esto no se trabaja ... ¿Puede usted por favor ser más específico ?? No puedo acceder a través de este truco. Estoy usando Liferay –

+0

No sé liferay. ¿Está basado en Tomcat? –

+0

Sí, está basado en Tomcat. Estoy utilizando la versión de Liferay 6.2.0 m2 que usó Tomcat 7. Según mi conocimiento este es el mismo escenario normal relacionado con tomcat. Ayúdame por favor –

3

Tuve el mismo problema pero encontré una solución.

Si está utilizando Eclipse y un complemento Tomcat, tenga en cuenta que el complemento Eclipse Tomcat crea un CATALINA_BASE por separado en el directorio Eclipse workspace.

Puede ir a esta ubicación y encontrará server.xml. Use queserver.xml y funcionará.

Mi directorio real Tomcat es:

C:\apache-tomcat-7.0.62x64\apache-tomcat-7.0.62\conf 

y utiliza mi servidor Tomcat Eclipse:

C:\workspace\JSF\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\conf 

utilizar la ruta de espacio de trabajo y server.xml desde esta ubicación.

Añadir esta server.xml en el interior de la etiqueta de host:

< Context docBase="D:/personal" path="/images" /> 

y funcionará si tiene D:/personal1.png, y luego la url http://localhost:8080/images/1.png se carga la imagen.

+0

¿Cómo se puede acceder al archivo servlets y jsp? Esto está cambiando el contexto predeterminado –

+0

Esto funciona, pero ¿cómo puedo proporcionar seguridad para acceder al recurso – Viswa

+0

Perfecto ................... sin embargo, en mi caso, la ruta fue temporal de temp0 – nobalG

1

en Tomcat8 también se puede añadir a PotsResources que META-INF/context.xml de la siguiente manera:

<Context> 
    <Resources allowLinking="false"> 
     <PostResources readOnly="false" 
         className="org.apache.catalina.webresources.DirResourceSet" 
         base="path-to-your-local-folder" 
         webAppMount="/images"/> 
    </Resources> 

    ... 
</Context> 
Cuestiones relacionadas