Entradas

Spring con JDBC y JPA

Imagen
En este post veremos una aplicación Java Web donde la conexión a la base de datos se hará usando Spring, y también veremos cómo manipular la data con JDBC y con JPA. Todo esto lo ejecutaremos desde Tomcat.

Opinión: La alternativa de Java EE

Imagen
Si vamos a usar un servidor Java EE (perfil completo) para implementar una solución, recomiendo utilizar todas las funcionalidades que vienen en la especificación: EJB, JPA, JMS, etc. Pero hay veces que no podemos contar con un servidor de ese tipo ya que, por ejemplo, el cliente no conoce más allá del Tomcat, o no exista gente que podría administrar un servidor como GlassFish, Payara, Weblogic, etc. Entonces, llegamos a extrañar las funcionalidades dadas por Java EE, y optamos por otros frameworks que sí nos ayudan en nuestros momentos de limitaciones de servidor. Spring ayudó mucho desde un inicio cuando no se contaba con servidores Java EE OpenSource completos. Caló tan fuerte entre los desarrolladores, que practicamente se ha hecho un "estándar" alterno a Java EE. Cuando los arquitectos de Java EE "despertó" y mejoró las especificaciones en la versión 5, pienso yo, ya era muy tarde. Tomcat siguió siendo el servidor "estándar" para aplicaciones

Java EE 8 | Server Push (Servlet 4.0) y MVC

Imagen
En el anterior post habíamos visto un resumen de todas las nuevas características que tendrá Java EE 8. Aquí detallaremos un poco de Servlet 4.0 que consiste básicamente en la funcionalidad Server Push.

Java EE 8 - Nuevas características

Imagen
Sigamos explorando lo nuevo que viene en el Java EE 8. En este post veremos las características que esta nueva actualización. Y como una imagen vale más que mil palabras, aquí una imagen... luego vienen las palabras. Esta imagen fue presentada por David Delabassée ( @delabassee ) el año pasado en el JavaOne y resalta los cambios y adiciones para Java EE 8.

Java EE 8 - GlassFish 5.0

Imagen
A partir de hoy y en los siguientes posts comenzaremos a ver y revisar lo que será el Java EE 8. Para ello utilizaremos GlassFish con la versión 5.0.

DataSources en una aplicación Java EE

Imagen
Todas las aplicaciones en Java EE va a necesitar - al menos - una conexión a una base de datos relacional. Según el Diseño de Patrones, la conexión a base de datos debe estar fuera de la aplicación que estamos construyendo. Según el estándar de Java EE, la conexión a la base de datos debe estar basada en un Pool de Conexiones y que esté administrado por el Contenedor Java EE. Esta conexión a la base de datos es a través de los DataSource del Contenedor Java EE. En este post veremos que existen tres maneras para implementar un DataSource, con sus ventajas y desventajas, dependiendo de lo que uno desea para su propia implementación.

Un vistazo a JSON-B de Java EE8

Imagen
Java EE 8 viene con muchas características interesantes, y en este post veremos un poco de la nueva implementación: JSON Binding, o también conocido como JSON-B ( JSR-367 )

Payara Micro

Imagen
Ya estamos en una época en que no necesitamos de grandes servidores de aplicaciones para hacer funcionar una pequeña aplicación. Montar todo un entorno es cada vez más simple. Por ejemplo se está usando Docker para montar un entorno especializado únicamente para un fin: o base de datos, o servidor de aplicaciones, etc. Así se ahorran costos para configurar grandes entornos. En el mundo de Java EE, hay alternativas para hacer aplicaciones más pequeñas y no depender de todo un servidor. De esta manera podemos tener microservicios en lugar de una aplicación monolítica. Spring Boot es una alternativa: unos cuantos scripts y ya tenemos una aplicación Spring listo para ejecutarse desde cualquier contenedor standalone. Pero en este post escribiré de otra propuesta: Payara Micro .

RESTful usando Payara Fish y Knockout.js apoyado por NetBeans

Imagen
Aquí muestro un ejemplo de implementación de AJAX con RESTful usando  +Payara  y knockout.js . Para hacerlo más rápido, utilicé NetBeans, así me ahorro bastante en la configuración. Preguntas, comentarios háganla abajo sin miedo. Espero que les sea útil

JPA: Maestro / detalle con clave primaria compartida

Imagen
Hace casi 10 años (wow!) había publicado un artículo sobre las claves compuestas en entidades de tipo Maestro / Detalle . Bueno, aquí está una super actualización. Esa vez fue hecha con JPA 1.0, ahora lo mostraré más actualizado y mejorado con con el JPA 2.0 .

Servidor RESTful sin contenedor Java EE: Grizzly, Jersey y Maven

Imagen
¿Quieres implementar un servidor RESTful sin usar GlassFish, JBoss, Tomcat, Wildfly, Payara, Jetty, WebLogic ni nada parecido? ¿y en Java sin usar Node.js? Bueno, aquí les comparto una manera de montar de montar un servidor RESTful usando Jersey pero ejecutable desde la línea de comandos.

RESTful Tomcat + Jersey: org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo MessageBodyWriter not found for media type=application/json, type=class

Imagen
Si estás tratando de programar RESTful con Jersey sobre Tomcat (porque el Tomcat es más fácil de desplegar y más ligero, Jersey es el más recomendado por Oracle, y RESTful luce bien) y justo cuando quieres probar que devuelva un objeto simple que has creado, lanza el siguiente error: 26-Feb-2016 16:54:00.889 SEVERE [http-nio-18080-exec-2] org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo MessageBodyWriter not found for media type=application/json, type=class... Optas por alguna de estas opciones: Dejas Tomcat porque sabes que, como no es un JavaEE Container, migras a JBoss, Wildfly o lo que sea.. pero Tomcat no lo vuelves a usar porque solo es para web. Ya no usas Jersey, y cuando migras usas algo como SimpleREST de JBoss O usas Spring y te llenas de documentación solo para montar un RESTful simple. Por lo que finalmente dejas de lado tu primera motivación: Tomcat + Jersey. Ahora bien, vamos a revisar qué ocurr

Java EE 8 - MVC 1.0

Imagen
MVC es una nueva característica que vendrá en Java EE 8. No reemplaza al JSF, ya que es otra filosofía. JSF está basado en estados de la aplicación, mientras que MVC es justamente la implementación del patrón Modelo Vista Controlador. Uno mismo va a crear el Modelo, también la vista (generalmente JSP) y el controlador. Cuando comencemos a verlo, notaremos que tiene un parecido a Spring MVC (para ver una pequeña introducción de Spring MVC, puedes ver el post anterior: Conociendo Spring MVC . La diferencia es que este está más Java EE, con más anotaciones que archivos de configuración, y más Oracle.

I/O y NIO - Navegación de archivos y I/O (1/7)

Imagen
I/O sabemos que se trata de Input / Output, y consiste - generalmente - en el manejo de archivos, aunque también puede manejar la entrada y salida de bytes desde cualquier entrada/salida como fuera un puerto serial, cadena de caracteres, impresora, etc. NIO es el "Nuevo I/O" que contiene paquetes nuevos desde Java 1.4. Actualmente hay un NIO.2, o sea, paquetes más nuevos aún, que aparece en Java 7. Para generalizar, cuando se mencione NIO, se estará tratando de NIO2. En este post veremos algunos ejemplos sobre estos paquetes que son muy útiles, y también necesarios para el examen de certificación.

Midiendo el rendimiento con JMH - Java Microbenchmark Harness

Imagen
JMH es una herramienta tipo arnés de Java que permite medir el rendimiento en la construcción, ejecución, y análisis de aplicaciones hechas Java y otros lenguajes hechos para JVM El proyecto se encuentra aquí: http://openjdk.java.net/projects/code-tools/jmh/ En este post veremos un poco de su funcionamiento

UML en NetBeans

Imagen
NetBeans permite programación orientada a objetos como Java y C++. Ahora bien, siendo un IDE muy bueno, debería permitirnos manejar UML para modelar nuestros objetos ¿cierto? Pues bien, aquí les muestro como instalar un plugin en NetBeans que nos permita escribir UML de una manera no convencional. (Mejor que arrastrar y soltar los artefactos en el lienzo.. ya verán)

Conociendo RegEx (Parte 2/2)

Imagen
Continuamos con las Expresiones Regulares, esta vez veremos ejemplos un poco más complejo. El anterior post lo puedes ver aquí Conociendo RegEx (Parte 1/2)

Convertidor de tipo de atributo con JavaPersistence API

Imagen
Java nos permite crear muchos tipos de datos. Pero cuando queremos guardarlo en la base de datos, necesitamos hacer una conversión. Y de manera inversa, cuando queremos obtener un valor de la base de datos, necesitamos convertirlo a nuestro tipo de valor especial. Menudo trabajo. Optamos o por hacer un convertidor de datos a nivel de DAO, o no usamos nuestra estructura de datos especial. ¿Y si usamos JPA? Calma, calma. La versión JPA 2.1 (que viene incluido en Java EE 7 - JSR 338 ) tiene un convertir de tipos para ayudarnos con este problema.

Encuesta para conocernos mejor

Estimad[a|o]s seguidor[a|e]s. Como Java es bastante extenso, me gustaría conocer qué tanto tienen en experiencia en Java para poder preparar más contenido de acuerdo a su perfil. Así que agradeceré que respondan esta pequeña encuesta. http://goo.gl/forms/nSosfMUEOy

Convirtiendo Aplicaciones Java EE monolíticos a Microservicios

Imagen
(Traducción libre de Monolithic to Microservices Refactoring for Java EE Applications de   +Arun Gupta  ) ¿Te has preguntado qué se necesita para convertir una aplicación Java EE monolítica a uno basado en microservicios? Este post explica cómo hacerlo usando un ejemplo trivial de carrito de compras, y cuáles son algunas de las preocupaciones el hacer utilizar microservicios.