Entradas

JSON WebService Liferay 6.1 (GA2) (Queja)

Este es un post pequeño, y quizás un poco fastidiado por algo que encontré en esta nueva versión de Liferay 6.1 GA2 (es decir, la 6.1.1) Para crear un JSON WebService, basta con crear un Service en el Portlet y ya está publicado. (Leer aquí  http://www.liferay.com/community/wiki/-/wiki/Main/JSON+Web+Services ) Si usamos Tomcat, no existe ningún problema. Es más, podemos ver el API WebService en una web para hacer las pruebas desde la misma web. Por ejemplo: si creamos un portlet llamado "Test-portlet" y creamos un servicio llamado "Calc", podemos entrar a http://localhost:8080/Test-portlet/api/jsonws y vemos todo el API. Pero... si usamos el GlassFish, no aparecerá la página. Según la gente de LR, cada contenedor tiene manera diferente de reconocer su contexto. Me consta: depuré el código fuente, y desde GlassFish devuelve el contexto "null" mientras que con tomcat devuelve el contexto (o sea, Test-portlet) Y la salida que me dan es llamar a un URL c

JMX en Tomcat Windows Service

Imagen
JMX es una tecnología que permite la administración y monitoreo de aplicaciones Java. A partir de la versión 6, en el JDK viene incluido el Java VisualVM que es una herramienta que permite monitorear visualmente las aplicaciones Java en la máquina virtual. Lo pueden encontrar dentro de la carpeta bin del JDK. Cuando lo ejecutan, pueden ver como se está ejecutando las aplicaciones en Java, sus clases, qué tipo de objeto es el que está usándose más, etc. Es muy recomendable usarlo para mejorar el rendimientos de las aplicaciones. Tomcat también puede ser monitoreado desde Java VisualVM, pero encontré un detalle si ejecuto el Tomcat en modo servicio de Windows: no puedo conectarme desde el Java VisualVM. La solución es simple: modificar la configuración del servicio de Tomcat. Ejecutamos el tomcat7w.exe desde el servidores, y nos mostrará la configuración del servicio Tomcat. En la sección "Java" agregar estas líneas en la sección "Java options" -Dcom.sun.ma

Recomendaciones para el manejo de excepciones

Imagen
Cuando se programa, es necesario manejar las excepciones, controlarlas y aprovechar su información. Considero que hay tres malas prácticas que se deben evitar cuando queremos usar un método que lanza un excepción manejada. Antes de continuar con este apunte, vamos a repasar lo que es una excepción.

Backup de todas las bases de datos en MySQL

Imagen
Comparto otro post no java (OPNJ) referente a MySQL. La idea es simple: quiero hacer backup de todas las bases de datos de MySQL, pero con las siguientes condiciones: Un archivo sql por cada base de datos Que en el nombre del archivo indique la fecha en que se hizo el backup Y que se ejecute en Windows. Hacemos un archivo .bat con el siguiente contenido: set USER=root set PASS=password set DB_LIST=databases.txt REM obtenemos todas las bases de datos echo show databases where not `Database` like '%%schema' | mysql -u %USER% -p%PASS% --column-names=false > %DB_LIST% REM recorre el contenido del archivo y ejecuta el comando mysqldump FOR /F %%G IN (%DB_LIST%) DO mysqldump -u %USER% -p%PASS% -B %%G -R --hex-blob=true > %%G-%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%.sql y ahora, para que se ejecute cada cierto tiempo, usar el "Programador de Tareas de Windows".  saludos

Implementando Contextos Java e Inyección de Dependencia (CDI)

Imagen
La inyección de dependencia es una técnica popular en el desarrollo de aplicaciones empresariales java. En una inyección de dependencia, también llamada Inversión de Control (Inversion of Control - IoC) , un componente especifica los recursos de los que depende. Un inyector, típicamente un contenedor, proporciona los recursos al componente. Aunque la inyección de dependencia puede ser implementado de varias maneras, muchos desarrolladores lo implementan con anotaciones.

Hackatón de Saneamiento en América Latina

Imagen
El Banco Mundial convoca a hackers para resolver los problemas del saneamiento en América Latina a través del uso de la tecnología. Se inicia la Hackatón de Saneamiento en América Latina Premios en efectivo serán otorgados para hacer de las soluciones propuestas una realidad. Utilizar las tecnologías de la información y comunicación para hacer que más personas tengan acceso a un baño digno en Latinoamérica o que las empresas de agua tengan mejores herramientas para atender las necesidades de su comunidad son algunos de los objetivos de la Hackatón de Saneamiento 2012 en Latinoamérica .

Liferay, más que un CMS

Imagen
Estamos desarrollando una Intranet 2.0 en una reconocida empresa, utilizando para ello Liferay. Y es que usar Liferay como un Sistema de Gestión de Contenido, no sería lo más justo para tal plataforma. Se puede hacer muchas cosas con este aplicativo.

Java EE 6 Cookbook for Securing, Tuning, and Extending Enterprise Applications

Imagen
@Mick Knutson publica su libro " Java EE 6 Cookbook for Securing, Tuning, and Extending Enterprise Applications " donde se muestra, de manera general y concisa, los aspectos de seguridad, rendimiento y mejorar las aplicaciones Java EE 6. Aquí, mis comentarios del libro.

Permisos por usuario para recursos de Liferay

Imagen
A partir del Liferay 5, los permisos a los recursos (blog, foro, contenido, etc) se hacen a través de "Roles". Es decir, si se quería compartir un solo archivo a una sola persona, habría que crear un "Rol" donde esté esa persona. Eso es algo complicado de mantener, si es que estamos usando el Liferay como una intranet y se les permite  a los usuarios que compartan información únicamente a ciertos usuarios.

Resultado de Encuesta: Tutorial de Instalación de Liferay

Imagen
Bueno, la cosa estuvo reñida. Pero aquí los resultados de la encuesta sobre qué software utilizar para el curso de Liferay que estoy elaborando.

Encuesta: Tutorial de Instalación de Liferay

Estoy preparando un tutorial de Liferay y - para que los que desean llevar el curso online - me gustaría conocer qué es lo que quieren encontrar ahí

Optimizando GlassFish para producción

Imagen
Gracias a un Tweet de Edwin Ilovares (@_edwini) me hizo recordar en publicar un post que lo tenía pendiente desde hace un tiempo, y es sobre la optimización de GlassFish.

Liferay 6.1

Imagen
De vuelta a la carga! Después de un año de descanso no merecido para actualizar el blog, aquí regreso con algunas novedades. Para comenzar, todo el año pasado he estado laborando en una empresa que no se dedica 100% a Java, por tanto no había mucho que aportar a la comunidad. Pero ahora - por Gracia de Dios - estoy laborando en una empresa grande donde trabajan casi el 100% en Java, así que me siento como pez en el agua :) Ahora bien, estoy en un proyecto donde se está implementando el Liferay como plataforma para la gestión de comunidades internas. Y bueno, Liferay ha evolucionado bastante desde la última vez que publiqué un post sobre él. Así que este post es básicamente mostrar las nuevas características que tiene la versión actual de Liferay 6.1.

Un par de regalos para finalizar el año: Plugins para NetBeans

Imagen
Antes de finalizar este año - que personalmente me sucedieron varias cosas entre buenas y malas - quiero dejaros un par de enlaces de plugins para que lo anexen a su NetBeans 7.x y con ello tendrán un editor de XSLT y de otros plugins.

AOP con Java EE 6

Imagen
En un anterior Post hablé sobre AOP usando Spring . Es un post algo antiguo, y me había basado de un artículo publicado en JavaRanch . Esa vez fue usando el famoso Framework Spring, pero esta vez mencionaré como funciona el AOP desde Java EE6. Creo que ya existía desde la versión EE 5, pero no importa, aquí lo mencionamos para el deleite de todos.

Premios Open Source 2011

Imagen
PACKT anuncia la entrega de premios "Open Source 2011" en el que se presentan los mejores productos OpenSource de la comunidad.

Libro: Java EE 6 Development with NetBeans 7

Imagen
La gente de PacktPub.com la noble tarea de revisar un libro que habla sobre Java EE 6 con NetBeans 7:  Java EE 6 Development with NetBeans 7 Acabo de leerlo y aquí van mis comentarios.

Probando RESTful con Poster

Imagen
Seguimos con RESTful en Java! Ya luego comentaré qué pasó conmigo y por qué no estuve enviando contenido a mi blog. Hasta el momento hemos visto casi de manera abstracta el funcionamiento de RESTful  usando Jersey desde NetBeans . Ahora veremos como probar todo un CRUD de RESTful desde un complemento de Firefox llamado Poster .

Contraseñas encriptadas con Java

Imagen
¿Quién no ha querido encriptar texto o archivo? Hay diversas maneras para hacer eso, por ejemplo, utilizando un diccionario donde se reemplazara cada caracter por un código.. y para poder desencriptarlo se debería utilizar el mismo diccionario para revertir el proceso. Pero si el diccionario cae en manos de alguien que no queremos que lo sepa, entonces estamos en peligro. Cuando yo programaba en pascal, mi encriptación favorita era invirtiendo los bits... pero cualquiera también puede invertir los bits y listo. Pero ya gente experta logró algoritmos de encriptación populares. Los más conocidos: MD5 y SHA. En este post hablaremos cómo encriptar texto, sobretodo las contraseñas, utilizando MD5 o SHA.

Upload en JSF 2.0

Imagen
Después de varias semanas desconectado por motivo de trabajo (parece que ahora sí trabajo más que antes) retomo (y espero que sea más seguido) los artículos de este blog que, según veo las estadísticas, a varios desarrolladores ayudan. Y bueno, estuve haciendo una aplicación con JSF 2.0, y una de las característica que debería tener es que  permita anexar archivos. Los Servlet 3.0 - que son parte de Java EE 6 - permiten cargar archivos de manera nativa. Lo que mostraré en este post es justamente cómo utilizar el Upload de Servlet 3.0 desde una aplicación web con JSF 2.0. No usaré extensiones de JSF como el ICEFaces o el MyFaces, porque quiero hacerlo de la manera más genérica posible, de tal manera que no afecte a la implementación de JSF que estén usando.