Ir al contenido principal

Grails, Imágenes y Postgresql

Pues he estado probando postgresql desde que salió la versión 9.0 beta1, y el no saber qué pasará con MySQL, en fin, eso es otra historia. El chiste es que hoy, bueno desde ayer, me topé con algo que me hacia considerar regresar a MySQL, aunque sé que en MySQL no es cualquier cosa hacerlo. Estoy guardando en la base de datos unas imágenes, y aquí van a empezar a polemizar en cuanto a si es mejor o no guardar datos binarios en la BD, pero una rápida respuesta a sus interrogantes es que pienso poner mi aplicación en clúster, por lo que me es más fácil si esos recursos se encuentran en la BD, no me importa tanto el rendimiento. En fin, intenté hacer eso, porque no funcionó, llegué al punto de intentarlo en una aplicación vacía con HSQLDB, y que funciona... charros, entonces es Postgresql, seguí debugueando y encontré el problema, resulta que en Postgresql 9.0 (ya estoy en el beta2, por bajar el beta3), cambiaron una opción que en versiones anteriores estaba de otra forma, la regresé a como se maneja en la version anterior y listo, funcionó. La opción se llama bytea_output y su valor por defecto, ahora, es 'hex', y la necesitamos en 'escape'. Este valor se puede cambiar de dos formas una es editando el postgresql.conf de la base de datos creada, buscando este valor dentro del archivo y cambiándolo y la otra es hacerlo directamente en la base de datos con la siguiente instrucción
ALTER DATABASE gisdb SET bytea_output='escape';
Esto lo encontre en postgresonline

Bueno y cómo se hace? Pues utilizando la documentación de grails y del buen Tomás Lin
Dominio que va a aceptar el binario


GSP para captura de imagen (archivo binario)


Controlador que guarda el archivo


Y para ver la imagen, en el controlador ponemos una accion

Comentarios

Entradas más populares de este blog

OpenSolaris, Clúster de Glassfish y Sun Java Web Server Loadbalancer

Pues estuve necesitando un clúster de Glassfish V2U2 para lo cual encontré rápidamente mucha información en Internet, el que más me gustó fue un blog de Ryan Wilson , pero también necesitaba poner el balanceador de cargas ( loadbalancer ) asi que para eso utilicé la documentación de Glassfish . Aquí el resúmen: Instalar OpenSolaris 200805 y despues realizar lo que les sugieren en los Release Notes , en donde te dicen que actualices su herramienta para instalar paquetes. NOTA: Antes de hacer esto, asegurarse de tener todas las máquinas que van a participar dentro del cluster mapeadas con un DNS, de no ser esto posible sus archivos de hosts deben de tener la información suya y de cada una de las máquinas que van a participar. (Gracias a equipo Telcel) Despues de esto seguir las instrucciones de Ryan . Con esto vas a tener el cluster de glassfish funcionando. Solo que en la configuración del segundo servidor puedes hacer lo siguiente para evitar los pasos 4 al 6 (lo siguiente todo en una...

Reporte Excel con JasperReports

Pues no funcionó el reporte con Jasper, pude hacer que evitara paginar con estas opciones ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); JRXlsExporter exporterXLS = new JRXlsExporter(); exporterXLS.setParameter(JRXlsExporterParameter.JASPER_PRINT, jasperPrint); // exporterXLS.setParameter(JRXlsExporterParameter.IS_DETECT_CELL_TYPE, Boolean.TRUE); exporterXLS.setParameter(JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND, Boolean.FALSE); exporterXLS.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, Boolean.TRUE); exporterXLS.setParameter(JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_COLUMNS, Boolean.TRUE); exporterXLS.setParameter(JRXlsExporterParameter.IS_COLLAPSE_ROW_SPAN, Boolean.TRUE); exporterXLS.setParameter(JRXlsExporterParameter.IGNORE_PAGE_MARGINS, Boolean.TRUE); exporterXLS.s...

JQuery Image Upload en Spring MVC

Utilizar el jQuery File Upload de blueimp  en Grails es una delicia. Pero necesito hacer una aplicación grande y no sé lo suficiente como para mantenerla óptima dentro de Grails, así que decidí portarla a Spring MVC, pero no encontré una implementación de esta herramienta en Java que hiciera lo que hace el plugin, que simplemente implementa lo que la herramienta ya hace en otras plataformas. Así que me puse a implementarla y ya quedó. La pueden encontrar en github ... Sólo necesitan clonarla, y ejecutarla con maven: mvn tomcat7:run