Tomcat 5

Por fin funcionaron los malditos queries. Algo o alguien había metido mano a la misma base de datos que uso para el desarrollo, y la consistencia de la misma se perdió. Con eso resuelto, me hice a la tarea de convertir los JPSs a que usaran taglibs.

Los tags son chidos. En primer lugar, permiten que se edite un archivo en XEmacs y que éste lo indente correctamente. Y por supuesto, la indentación es lo más importante del universo. Menos importante, también obligan a mantener la “lógica de negocio” fuera del JSP, y dentro de clases con interfaces bien claras según las reglas de la Orientación a Objetos. Eso hace al JSP más limpio y por ende mucho más manejable.

Una vez hice en Simitel un JSP que, literalmente, daba miedo.

Todo salió casi perfecto, hasta el momento en que tuve que llamar a un procedimiento estructurado de Oracle. No hay un tag para tal cosa en la JSTL, así que hice yo uno. Gran Dios; perdí horas en eso.

Básicamente el problema fue que Tomcat 4.1 no soporta el Expression Language, que es parte del estándar JSP 2.0, que sólo ofrecen las versiones de Tomcat 5 y para arriba. Por supuesto eso era la explicación más sencilla, pero yo me pasé horas experimentado y reiniciando Tomcat pensando que me había equivocado en algún parámetro de configuración. Debió ser obvio cuando vi que un argumento era recibido por el JSP literalmente como “${user}”. Carajo.

Eso fue para convertir el primer query a tags. Veinte minutos antes de irme, fui con mi jefe y le pregunté si podía utilizar Tomcat 5 en lugar de 4.1. Sorpresa sorpresa: sí puedo. Tardé menos de veinte minutos en convertir el otro query a tags (que no necesitaba ningún tag personalizado).

El problema en gran medida es que la JSTL soporta el EL; uno puede hacer cosas del estilo:

<c:set var="user">Canek Peláez Valdés</c:set>
<strong><c:out value="${user}" /></c:out></strong>

uno obtiene lo que se esperaría, o sea Canek Peláez Valdés. Pero si uno hace un tag personalizado con exactamente la misma funcionalidad, entonces obtendría el equivalente de ${user}. Lo cual no sólo es inconsistente; es estúpido. Carajo.

Independientemente hoy fue un fabuloso día para trabajar. Es viernes, así que entra el “viernes casual”, y no siento que soy el único que no lleva traje y corbata. Que de hecho creo que sí soy el único que no lleva traje y corbata. Pasé horas deliciosas frente a una máquina, rastreando un problema que en retrospectiva era bastante idiota (hint: leer la documentación de tu servidor de JSPs y ver si soporta el EL antes de tratar de usarlo… o al menos googlear un poco al respecto), pero esa es de las cosas que me gusta hacer de cualquier forma.

El proyecto por el que me estoy prostituyendo está especificado para que dure mes y medio. Dudo mucho que me tarde más de una semana hábil en terminarlo (de hecho le dije a mi jefe que si no acababa para el viernes algo estaba mal conmigo), y me tomé la libertad de perder tiempo en algo que realmente no importa. A mí me pagan igual si hago el proyecto utilizando tags o JSPs tradicionales. Pero es más divertido con tags.

Si todos mis días de trabajo fueran como el de hoy, pensaría seriamente en hacer mi vida así: trabajando de 9 a 6. Lamentablemente días como el de hoy son raros.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *