Publicado el Deja un comentario

Software Guru: Integración de Aplicaciones ”Zero-Code”. Video.

Interesante video de un software integrador de aplicaciones. Según se describe en el video, es «un webinar para descubrir cómo aprovechar sus sistemas actuales, integrar diversas aplicaciones, datos, dispositivos y automatizar procesos en un corto tiempo. Integra los procesos de negocio actuales con los de cliente y proveedores».

Espero y les sea util.

Publicado el Deja un comentario

Microservicios

Las grandes empresas que dan servicios en la nube como Netflix, Amazon y muchas más están usando y/o migrando a Microservicios.

¿Que son los Microservicios? Los Microservicios son un patrón de Arquitectura de Sofware, es decir, una forma de cómo «construir» nuestras aplicaciones de software.

Por lo general nuestra aplicación web, desarrollada en java, la «empaquetamos» en un sólo paquete (válgame la redundancia), al que llamamos archivo .war y  que más adelante lo instalamos o desplegamos en nuestro servidor de aplicaciones. En ese único paquete van todas nuestras entidades, servicios, conexiones a base de datos, etc.; todos los objetos que conforman las diferentes capas que conforman nuestra aplicación web. Utilizamos lo que se llama una Arquitectura Monolítica.

Con la llegada de la computación en «la Nube» la Arquitectura Monolítica de las aplicaciones web empezó a ser ineficiente. A la hora de asignar más recursos computacionales y escalar este tipo de aplicaciones resultaba costoso. En ocasiones es necesario, por ejemplo, escalar sólo un proceso de nuestra aplicación y no toda la aplicación en su conjunto.

Con los Microservicios se divide la aplicación en piezas funcionales y desacopladas, donde cada una de esas piezas es una aplicación y se despliega o se instala independientemente de la otra. De esta forma se puede escalar y asignar recursos sólo una de estas aplicaciones que lleva a cabo una función específica dentro del sistema y no todas en su conjunto.

Para una explicación más detallada de lo que son los microservicios y para qué sirven, te recomiendo este sitio.

¡Saludos!

 

Publicado el Deja un comentario

java.lang.IllegalStateException: getOutputStream() has already been called for this response. Glassfish 4.1.1.

Desde hace un tiempo, utilizo Glassfish como servidor de aplicaciones en mis desarrollos web con Java. Sin embargo en el proyecto que actualmente trabajo, al descargar la última versión y querer añadir un nuevo pool de conexiones, la consola de administración gráfica de Glassfish 4.1.1 me arroja el siguiente error:

java.lang.IllegalStateException: getOutputStream() has already been called for this response.

Buscando la causa me encuentro que es un bug en esta nueva versión de Glassfish que aún no ha sido resuelto. Hay que recordar que Oracle dejó de dar soporte sobre este producto y por lo tanto, las correcciones de errores son más lentas que antes. En el misma dirección donde se reporta este bug se indica algunas soluciones.

Dentro de las soluciones, me enteré que existe una empresa que ha empezado otro desarrollo en base al código de Glassfish y realiza funciones de mantenimiento más prontas: Payara Server. Lo he descargado y funciona perfectamente hasta el momento. De ahora en adelante utilizaré este servidor de aplicaciones en futuros desarrollos.

¡Felices fiestas!

(Por favor visita a los patrocinadores).

 

Publicado el Deja un comentario

Aplicación con Hibernate 5 no puede ser instalada en Glassfish 4.1.1.

No es posible hacer el deploy de una aplicación que contiene las librerías de Hibernate 5.0.3 a Glassfish 4.1.1. En ell archivo log manda el siguiente error grave:

El problema es la incompatibilidad de versiones de la librería jboss-logging.jar que usan dichas versiones de Hibernate y Glassfish. Reemplazando la librería jboss-logging.jar que se encuentra en glassfish/modules  con la librería versión 3.3.0 (jboss-logging-3.3.0.Final.jar) se soluciona el problema.

¡No olvides dar click en los anuncios!

¡Saludos!

 

Publicado el Deja un comentario

Mensaje «Cannot run /usr/bin/firefox» en Netbeans 8.

Hola a todos nuevamente.

Me topé con este error al querer ejecutar una aplicación web con el IDE Netbeans 8 en Ubuntu 14.04.  Netbeans no podía abrir firefox para mostrar la aplicación, Chrome funcionaba perfectamente bien.

«Googleando» el problema no daba con la solución, hasta que encontré en el log de netbeans un error lanzado por el Java:

Si ejecutaba directamente el programa, éste respondía bien. Lo qué observé es que ese archivo no era en realidad un archivo, sino que un link que apuntaba al archivo /usr/lib/firefox/firefox.sh. Encontré el archivo ejecutable de firefox en esa misma carpeta, por lo que opté reemplazar la ruta de ese ejecutable en la ventana de administración de navegadores de netbeans como se muestra en la siguiente imagen:

Selección_409

Una vez cambiado el path del firefox y sus argumentos, la aplicación se abrió en farefox sin problemas.

(No olviden visitar los anuncios de los patrocinadores para seguir conservando este sitio).

¡Saludos!

 

 

Publicado el Deja un comentario

Visual Studio 2015 Comunidad no se instala en Windows 10

Al instalar en nuevo Visual Studio 2015 edicion Comunidad en Windows 10, el instalador iniciaba la instalación y después de un tiempo se colgaba y no terminaba la instalación. Después de interrumpir y volver a intentarlo varias veces, deteniéndose el proceso en partes distintas, opté por probar si el antivirus era el problema.

Visual-Studio-Community-2015-780x445
Tengo instalado el antivirus gratuito AVG 2015, así que procedí a desactivarlo a través de su menú. Una vez desactivado, intenté nuevamente instalar el Visual Studio y ¡eureka! se instaló sin ningún problema.avg-antivirus-free-2015_d86s.640

Al parecer hay un problema con el AVG 2015 y el instalador de Windows. Así que desactiven el antivirus momentáneamente mientras lleven a cabo la instalación, puede ser esa la causa.

¡Saludos!

 

Publicado el Deja un comentario

Obtener la fecha actual en java con la clase Calendar.

A partir de java 7 los métodos para obtener el día, mes y año de una fecha han quedado obsoletos o en desuso y podrán desaparecer en futuras versiones.

Lo que recomiendan es el uso de la clase Calendar para obtener estos datos. Enseguida un pequeño ejemplo de cómo obtener la fecha («AAAA-MM-DD») con la clase Calendar de java:

Observe el +1 al obtener el mes. Calendar.MONTH regresa el número de mes pero a partir de 0, por eso la necesidad de aumentar en uno para obtener el mes correctamente.

Espero y les sea útil. ¡Saludos!

Publicado el Deja un comentario

¿Estas pensando trabajar por tu cuenta (freelance)?

Aquí algunos consejos interesantes para tomar en cuenta si quieres lanzarte como freelance:

http://www.elfinanciero.com.mx/mis-finanzas/ventajas-de-espacio-para-un-freelance.html

¡Saludos!

Publicado el Deja un comentario

pkg: No image found. GlassFish 4.

La mejor manera de actualizar los paquetes de GlassFish 4 bajo un servidor CentOS 6.5 sin interfaz gráfica es con el comando pkg de este servidor de aplicaciones. Sin embargo, para ejecutar el comando, es necesario que nos encontremos en el directorio raíz donde se instaló el GlassFish, si no, lanzará el mensaje «pkg: No image found» al ejecutar dicho comando.

Por ejemplo, si instalamos el GlassFish 4 en la carpeta /opt/glassfish4 es necesario posicionarnos en dicho directorio:

cd /opt/glassfish4

Y luego ejecutar el comando pkg así:

./bin/pkg list 

para listar los paquetes instalados o

./bin/pkg install jersey

para instalar o actualizar el paquete llamado jersey.

Espero y les sea útil.

 

Publicado el Deja un comentario

¡Ups! Modifiqué archivos en un (no branch) en Git

Resulta que modifiqué archivos e hice commits en un submódulo de git y no me había percatado de que no estaba enlazado a ninguna rama (no branch).

Para no perder esos cambios hay que hacer lo siguiente dentro de la carpeta raíz del submódulo:

git show

El comando anterior mostrará algo como esto:

commit 330db217dffddaa07a0d8d107cbd650678f4c494
Author: …

Lo importante es la clave que se muestra en negrita, ya que la usaremos más adelante para hacer un merge. Una vez anotada la clave ejecutamos:

git checkout master

(En mi caso la rama principal se llama master, cambie el nombre si es necesario). Una vez cambiados a la rama deseada (en este caso master) ejecutamos el comando merge de la siguiente forma:

git merge 330db217dffddaa07a0d8d107cbd650678f4c494

Observe que utilizamos la clave que nos envió el comando show para hacer el merge y no un nombre de rama.

Una vez hecho esto, habremos actualizado nuestra rama master con la rama «(no branch)» y podemos seguir haciendo las modificaciones ya en la rama correcta (en este caso master).

¡Saludos!