Entradas

RESTful parte 3: Manejando colecciones de objetos y objetos complejos

Imagen
Comenzamos este año nuevo con la continuación del (creo yo) más esperado tema de tutorial: RESTful . Y esta vez hablaremos sobre el manejo de colecciones y objetos complejos. Por ahora será de manera básica y veremos poco a poco cómo hacerlo más y más complejo.

Delay

Mantener un blog es complicado, mas no imposible. Me había propuesto en poner un post cada martes, así en un mes habrían al menos cuatro apuntes que podrían ayudar a la comunidad java - en especial a los hispanos. Si en estas últimas semanas no he podido publicar más artículos no fue porque no sé qué publicar, sino por falta de tiempo. Estamos terminando un año, y con él muchos proyectos se deben cerrar, y  para preparar (no es por presumir, pero vuestros comentarios me lo confirman) un  buen artículo se necesita un tiempo exclusivo. Hay bastante material para publicar en mi blog, por ejemplo: RESTful con objetos complejos, con entidades, con arreglos, con conversores de tipo y sus clientes en PHP, JavaScript, JavaFX, etc. Plantillas en Liferay. JPA 2.0 y todo lo que se puede hacer. JSF 2.0: más ejemplos de Ajax, y sus extensiones con ICefaces JasperServer NetBeans Platform Java EE 6 sobre WebLogic etc Como se ve, hay bastante material para publicar, sin mencionar los

RESTful - Parte 2: Manejando un solo objeto

Imagen
Hemos visto en el anterior post cómo hacer un servicio REST solo para producir y consumir un texto simple. Ahora bien, en la vida real no son textos simples, sino estructuras de datos algo complicadas. Pero para ir lentos pero seguros, aprenderemos cómo hacer un servicio REST pero para manejar un solo objeto.

Lo que se viene con JDK 7 & NetBeans 7

Imagen
Se dice que el número 7 es el número de la perfección, y para el mundo Java este número no está lejos de serlo. Está cerca el JDK 7, con muchas mejoras en la sintaxis, y casi a la par también sale el NetBeans 7 con su respectiva compatibilidad. En este post mostraré algunas características de estos software.

RESTful... la forma más ligera de hacer WebServices (Parte 1)

Imagen
Quienes hayan usado SOAP para WebService, sabrán que es bien fácil de diseñar, pero algo complicado de consumir: se necesita toda una API para construir los clientes utilizando el WSDL. Por ejemplo, para PHP se necesita de la biblioteca NuSOAP. Entonces, para lograr el concepto de "lenguaje único XML" es un dolor de cabeza. Y más aún si el cliente es tan simple como JavaScript, manejar XML de SOAP provocaría suicidos masivos... o no usar WebServices. Además, con SOAP se permite crear un solo servicio y ponerle varios métodos. Esto puede llevar a un mal diseño del servicio ya que podría tener un servicio que haga de todo: por ejemplo, un servicio de manejo de Clientes que permita también manejar Proveedores. RESTful es una propuesta muy interesante de Roy Fielding que permite manejar los servicios web con métodos definidos, manteniendo la simpleza del protocolo como XML, pero que cada servicio sea identificado únicamente con un solo URI . En este post veremos cómo cr

Preparando capacitación virtual en NetBeans Platform

Imagen
A Geertjan Wielenga (considerado como el maestro de  NetBeans Platform) le he propuesto hacer un entrenamiento virtual sobre NetBeans Platform para Latinoamerica. Le agradó la idea, y me dice que reuna al menos a cinco o seis participantes. NetBeans Platform es una plataforma completa que permite desarrollar aplicaciones desktop (swing) proporcionándonos varias funcionalidades "rutinarias" que se necesitan al momento de hacer una aplicación swing, tales como manejo de ventanas, árboles, ventanas de diálogos, opciones, manejo de archivos, etc.  También se pueden desarrollar complementos que permitan ampliar la funcionalidad del mismo NetBeans IDE. Para tener una idea de lo que se puede hacer: NetBeans IDE y iReport están hechos sobre NetBeans Platform. ¿Quienes se apuntan para este entrenamiento? Si estás interesado, llena tus datos aquí :

Swing: Componentes enlazados a un bean

Imagen
La mejor manera de tener sincronizado un control swing con un javabean es utilizando enlaces (binding). La manera común y poco profesional es utilizar los set  y gets de cada atributo de un bean para asociar a cada componente. //... nombreTF.setValue(persona.getNombre()); edadTF.setValue(persona.getEdad()); //... etc y si son 80 campos, nadie querra hacerle mantenimiento. Aquí es donde entran los enlaces. Mostraremos un ejemplo con NetBeans para enlazar los componentes de un formulario con un JavaBean.

Compilando y ejecutando una clase java.... desde java

Imagen
El JDK 6 viene con varias funcionalidades interesantes, entre ellas la compilación de clases java desde el mismo java.

CouchDB, base de datos orientada a documentos

Imagen
Desde Panamá, nuestro amigo Arístides Villareal , ha publicado algunos post referente a esta base de datos orientada a documentos llamada CouchDB . http://avbravo.blogspot.com/search/label/couchdb http://avbravo.blogspot.com/search/label/m21couchdb CouchDB proporciona un API JSon para que puede ser accdido desde cualquier entorno, incluyendo peticiones HTTP. Fue escribo en Erlang , un lenguaje de programación funcional ideal para sistemas distribuidos concurrentes.

EJB 3.1 en Porlets de Liferay

Imagen
Ya que GlassFish v3 es compatible con Java EE6, y permite módulos web con componentes EJB (por la característica propia de EJB 3.1).. y además Liferay puede ser instalado sobre GlassFish v3... y... los portlets son módulos web con otro archivo de despligue ¿los portlets para Liferay/GFv3 deberían permitir EJB 3.1?

Liferay: Recursos necesarios

Imagen
Para poner en producción un servidor web con Liferay, en base a la experiencia, sugiero lo siguiente: Memoria: 2GB. Recomendable: 4GB CPU: 2 Core. Recomendable 4 Arquitectura: 32bits, Recomendable 64 bits. ¿Por qué tanto? Recordemos que este Liferay es para portales serios, para una empresa u organización seria. Si quieren algo más simple, y más barato, usen Joomla o algo parecido. Otro post más sobre Liferay y hago mi blog "Apuntes de Liferay" :). También hablaré de otros contenedores de portlets, por si liferay parece muy costoso poner en producción.

NetBeans 7.0

Imagen
La versión NetBeans 6.10 cambia de numeración para ser la 7.0. Será lanzada en marzo de 2011 y tendrá importantes cambios. Ojo a la nota:

Liferay: Registrando varios usuarios (usando complemento Hook)

Imagen
He estado buscando alguna opción de Liferay que me permita crear varios usuarios a la vez... pero no tuve éxito. Pensé (y hasta pregunté en el foro de liferay.com) si se podía modificar directamente la base de datos. Pero como es un sistema complejo, hacer esto podría malograr el sistema. Entonces pensé que debería haber otra solución utilizando el API de Liferay. Al final de todo, es una plataforma, y debería existir un API completo para ello.

mysqldump: ignorando el tag DEFINER

Imagen
Este es otro no-apunte-de-java. Se trata del MySQL. Resulta que he tratado de hacer un dump de un servidor a otro. Pero como tienen usuarios restringidos por host, y el mysqldump me genera el script con el tag /*!50013 DEFINER=`root`@`10.%` SQL SECURITY DEFINER */ ... pensé que debería haber algún parámetro de mysqldump para ignorar estos tags. Pero según el mismo MySQL dicen que tendría problemas de seguridad (vamos: darle derechos de pasar un VIEW o STORED PROCEDURE a alguien que no le corresponde). Así que tuve que valerme de un comando de unix/linux para ignorar estos tag:

Enmulando EJB en Web usando Spring

Imagen
Cuando salió el EJB 3.1 con la capacidad de poderse ejecutar en un módulo web, comencé a usarlo sin parar. Con los EJB me hace más fácil conectarme a la base de datosusando JPA porque simplemente debería usar  @PersistenceContext respectivamente. Pero no todos los servidores  donde uno va a desplegar aplicaciones son Java EE6, así que las facilidades del EJB 3.1 serían truncadas. Afortunadamente existe Spring para ayudarnos a instanciar clases como si fueran EJB, y más aún, nos permite usar JPA y mantener las notaciones  @PersistenceContext . Veamos cómo se hace esto.