Si quieres crear una ubicación común para archivos estáticos -como imágenes, hojas de estilo, etc- en Jboss, puedes crear una carpeta con la terminación .war en el nombre y colocar ahí todos los archivos a los que quieras acceder de forma estática.

En mi caso, necesitaba colocar algunas imágenes. Para esto cree una carpeta llamada static.war y dentro de ella coloqué una carpeta “img” con los archivos necesarios. De esta forma podía utilizar los recursos en alguna página html de la siguiente manera:

    <img src="///static/img/logo-small.png">

Relacionado:
https://community.jboss.org/message/238349 Jboss AS 5

Anuncios

Cuando ejecutas una aplicación GWT en Eclipse -ya sea Debug as Web Application ó Run as Web Application- utiliza Jetty como servidor web.

En una aplicación necesitaba poner una serie de archivos disponibles en dicho servidor. Como los archivos ya los tenía en una carpeta, no quise copiarlos a una carpeta en el servidor web (src/main/webapp), así que creé un enlace simbólico a la carpeta. Al querer acceder a los recursos me aparecía el siguiente mensaje en el log

[WARN] Aliased resource: file:/home/cirovladimir/projects/java/videohaus/videohaus-gwt/target/videohaus-gwt-0.0.1-SNAPSHOT/storage/videos/demo.mp4==file:/home/cirovladimir/Videos/videohaus/demo.mp4
[WARN] 404 – GET /storage/videos/demo.mp4 (127.0.0.1) 1446 bytes

El problema es que, por cuestiones de seguridad, Jetty no permite acceder a los recursos mediante un alias (mayúsculas y minúsculas, nombres cortos, enlaces simbólicos y carácteres extras).

Para desactivar esta carácteristica y permitir los enlaces simbólicos, podemos agregar un parámetro a la configuración de ejecución. Selecciona el proyecto y da clic en el menú “Run->Debug Configurations..”, luego agrega el parámetro “-Dorg.mortbay.util.FileResource.checkAliases=false” en la pestaña de argumentos en la sección de argumentos de la máquina virtual.

UPDATE: Existe una opción con el comando “mount” para montar una carpeta local en otra, y con esto ya no es necesario configurar Jetty para seguir los enlaces simbólicos. El comando es

 sudo mount --bind origen nueva_carpeta
 

si quieres que el montaje permanezca después de reiniciar tu computadora, agrega la siguiente línea en el archivo /etc/fstab

 origen &nbsp; nueva_carpeta &nbsp; none   bind   0   0
 

curiosamente esta solución la encontré cuando investigaba como montar una carpeta mediante NFS.

Fuentes:
https://groups.google.com/d/msg/google-web-toolkit/kMZv6jkYitw/yYfM54duu3wJ
http://docs.codehaus.org/display/JETTY/How+to+enable+serving+aliased+files
https://help.ubuntu.com/community/SettingUpNFSHowTo