Ir al contenido principal

SSI Filter en Tomcat 7

El otro día en el trabajo me estuve peleando intentando configurar un tomcat para que interpretara instrucciones SSI. Así que quiero dejar constancia de como se configura desde eclipse.

Lo primero de todo, abrir el fichero web.xml del servidor tomcat ubicado en /conf. En el deberemos descomentar el filtro SSI y el filter-mapping.

Filter SSI
    <filter>
        <filter-name>ssi</filter-name>
        <filter-class>
          org.apache.catalina.ssi.SSIFilter
        </filter-class>
        <init-param>
          <param-name>contentType</param-name>
          <param-value>text/html(;.*)?</param-value>
        </init-param>
        <init-param>
          <param-name>debug</param-name>
          <param-value>3</param-value>
        </init-param>
        <init-param>
          <param-name>expires</param-name>
          <param-value>666</param-value>
        </init-param>
        <init-param>
          <param-name>isVirtualWebappRelative</param-name>
          <param-value>1</param-value>
        </init-param>
    </filter>

Filter mapping
    <filter-mapping>
        <filter-name>ssi</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

Lo mas importante es en el Filter que la opción isVirtualWebappRelative este bien configurado en funcion de lo que busquemos.

El otro punto importante es el parametro contentType. Ahi deberemos filtrar aquellas paginas que queremos que sean analizadas para interpretar comandos SSI, en este caso son todas de tipo text/html. Importe lo que hay detras, ya que no siempre el contentType viene solo el mimeType, sino que va seguido del charset. Ej: text/html; charset=UTF-8

Una vez tenemos esto, deberemos marcar el contexto con el siguiente atributo
privileged="true". Esto se encuentra en /conf/context.xml.

Luego, el servidor deberemos configurarlo con la siguiente opción, ya que sino dará problemas en una clase, esta reconocido como un bug y se esta trabajando en ello, pero mientras tanto deberemos marcar esta opción: Publish module contexts to separate XML files



Después de esto ya solo nos queda hacer nuestras pruebas con SSI.

Comentarios

Entradas populares de este blog

Formatear fecha JSON

Para poder representar de forma bonita y humana una fecha retornada por un JSON por ejemplo, la función quedaría tal que así. En mi caso, el formato esperado es: dd/MM/yyyy hh:mm

function FormatDate(fecha) { var fechaObj = new Date(fecha); return (fechaObj.getDate() < 10 ? '0' : '') + fechaObj.getDate() + '/' + (fechaObj.getMonth() < 10 ? '0' : '') + fechaObj.getMonth() + '/' + fechaObj.getYear() + ' ' + (fechaObj.getHours() < 10 ? '0' : '') + fechaObj.getHours() + ':' + (fechaObj.getMinutes() < 10 ? '0' : '') + fechaObj.getMinutes(); };

Generar números aleatorios con Postgres

Muchas veces nos encontraremos con que tenemos que poblar una BD con numeros para poder testear un funcionalidad que estemos programando. En postgres es tan sencillo como:

update schema.tabla set columnaNumerica = floor(random() * N) + desviacion;
Con desviación me refiero a que, si no lo añadimos, random generara numeros empezando por el 0 hasta N. El uso de floor es para redondear y quedarme solo con la parte entera. Ya que random genera floats entre 0 y 1.

Espero os sirva este pequeño truquillo. Un saludico.