Archive for January, 2012
Bueno, comienza el cacochondeo. Mientras que en el mundo las leyes de propiedad intelectual parece que empiezan a cambiar en función de lo que los ciudadanos demandan a sus gobiernos, aqui en España… no.
Asi que os dejo un manual, que esta por todo internet, de como evitar la censura de la ley Sinde.
Una pena que en estos tiempos, tengamos unos gobiernos que insistan en no escuchar a los que de verdad manadan, los ciudadanos.

Resulta curioso lo de la memoria en java, nunca había tenido problema con ella, y sigo sin tenerlos. Lo único que he tenido ha sido un problema que parecia que era de memoria con una aplicación para un cliente. Al final ha resultado ser una tontería que no ha implicado ningún problema.
Pero la situación me ha hecho investigar un poco sobre el asunto de la memoria y como optimizar Tomcat para producción. Hasta ahora si tenia un problema de memoria, solo la incrementaba y se solucionaba el problema. No se si por que mis requerimientos siempre han sido de andar por casa (nunca he tenido una aplicación con tantos usuarios como Facebook, ya quisiera), o por que siempre he desarrollado las aplicaciones siguiendo una arquitectura estandar y aplicando patrones y tecnologías actualizadas. Pero nunca he tenido problemas.
He descubierto un par de paginas interesantes para aprender las bases de la gestión de la memoria en java. Una es de David Bonilla, una persona a la que sigo desde hace tiempo, artículo.
Esta otra página trata de que hacer cuando tienes un problema y como tratar de solucionarlo. Yo lo he hecho y resulta un poco complicado, supongo que sera práctica.

Y por último una página con pasos claros de como mejorar el rendimiento de nuestro Tomcat. Algunas muy elementales, como gestionar los log con alguna librería y nunca con System.out. Y otras que desconocía completamente como la opción -server.
Un post corto pero cargado de información. Cualquier sugerencia siempre sera bien recibida.
![]()
Llevo tiempo queriendo hacer una integración un poco mas limpia entre spring y gwt, y de paso empezar a usar maven de forma completa. Navegando por internet no he encontrado mucha información sobre esta complicada unión. Incluso en Google hay una pequeña pagina donde explica a grandes rasgos una posible integración. Pero no ha sido hasta hace poco que no he dado con alguien que explicara de forma clara como hacerlo.
La dirección de los tutoriales es esta http://krams915.blogspot.com/search/label/GWT, una web que interesante . Si estáis interesados, seguir los tutoriales.
Yo solo añadiré algunas aclaraciones, porque aunque esta bastante claro hay cosas que no me han funcionado.
M2eclipse
Este plugin me ha dado muchos problemas, hasta que me he dado cuenta de que era el y lo he erradicado por completo. Vamos a ver, no es que sea malo o no funcione, es que en mi caso particular me ha hecho muchos extraños. Para empezar, en un proyecto maven las librerías no están en el proyecto, si no que están en el repositorio local, con lo que el eclipse en algunas ocasiones se puede hacer un lío. Solucionable copiando dichos archivos a la carpeta de la web. Aunque claro, ya empezamos con piados a mano de librerías. Y no importa que las tengas en el classpath, algunas no las coge, no me preguntéis por que.
Y lo mas raro de todo, los controller de spring-mvc no los cargaba, aunque si me cargaba los beans de spring security. Curiosamente las dos clases controlador que hace mención en el tutorial de arriba, no las cargaba, y claro, no encontraba las paginas. Después de muchas comprobaciones, y de ver que utilizando el maven a pelo para ponerlo en marcha si que funcionaba, llegue a esta conclusión.
Y el autor ha debido tener los mismos problemas porque utiliza la declaración de los beans de gwt por el xml, y comenta que hay algún tipo de conflicto con las anotaciones y gwt. Pero puedo confirmar que los servicios de gwt se pueden configurar por anotaciones sin ningún problema.
Así que para evitar problemas, recomiendo utilizar maven como siempre, pero a la hora de ponerlo en eclipse, utilizar mvn eclipse:eclipse, que eso no falla y podréis manejar el proyecto sin problemas, depurar y ejecutar con el plugin de google.
Plugin de google
En este caso solo una aclaración, que ademas la tenéis en la página del mojo, la web donde esta el archetype de gwt, y es que tenéis que mover el archivo de configuración de gwt, modulo.gwt.xml, desde la carpeta de fuentes resources, /src/main/resources, a la carpeta de fuentes java, /src/main/java. Para que el plugin lo reconozca y no tenga problema en ejecutarlo.
gwt-widget
Esta librería te la una implementación sencilla de la solución que propuso google. No tiene ningún problema y funciona muy bien. El inconveniente, que lleva tiempo parada y no se si continuara, aunque por el momento a mi me sirve.
También hay que tener en cuenta que no esta en repositorios maven, con lo que hay que bajárselo e instalarlo en el repositorio local para que funcione bien con maven. Un ejemplo:
mvn install:install-file -DgroupId=org.gwtwidget -DartifactId=gwtwidget -Dversion=1.0 -Dpackaging=jar -Dfile=/path/to/file
Luego la incluis en vuestro pom tal que así:
<dependency> <groupId>gwt.widget</groupId> <artifactId>gwtwidget</artifactId> <version>1.0</version> </dependency>
Poco mas puede aportar, me ha llevado algún tiempo sacar estas conclusiones pero en el fondo es sencillo.
Queda pendiente un post de como utilizar spring security para aplicar seguridad a una aplicación gwt. Ahora que tengo esto montado y funcionando no me llevara mucho tiempo.