Hola.
Esta semana hemos comenzado el último bloque del curso: Java para móviles.
El entregable consiste en implementar un lector de RSS, que muestre todas las entradas que los alumnos hemos ido publicando en nuestros blogs.
Hoy he comenzado a darle vueltas al tema y a averiguar como tratarlo. La primera duda que me ha surgido... ¿Cómo llamar a un middlet desde otro?
La aplicación que tenemos que hacer tiene "3 pantallas". En la primera, aparecen los nombres de todos los alumnos. Una vez cliquemos sobre uno de ellos, aparecerán los títulos de sus entradas. De la misma forma, al hacer click sobre una de estas entradas, la visualizaremos en la pantalla del teléfono.
Buscando por Google, he encontrado una página, en la que dice que no debemos hacer 3 middlets, sino un middlet y varias clases que extiendan de la clase Form. La verdad es que me ha ayudado mucho. Os dejo un enlace a la página:
http://wiki.forum.nokia.com/index.php/How_to_use_two_forms
Por otra parte, también he tenido problemas al invocar a los blogs a través de HttpConnection. El problema estaba en que lo llamaba desde esta nueva clase que extiende a Form y no desde el middlet principal (se me quedaba colgado pidiendome confirmación para realizar la conexión) Por tanto, debemos crear un hilo que se encargue de realizar la tarea.
Warning: To avoid potential deadlock, operations that may block, such as
networking, should be performed in a different thread than the
commandAction() handler.
En fin... Este era uno de los puntos que más me interesaban del curso y la verdad es que me está gustando.
Continuaré mejorando el código a lo largo de la semana que viene y en clase le preguntaré algunas cosillas al profesor para que quede lo mejor posible.
Un saludo.
domingo, 27 de junio de 2010
domingo, 20 de junio de 2010
Integración de Tecnologías XML con Servlets
Hola.
Esta semana hemos visto el último punto del bloque, que consiste en integrar todas las partes del tema con un servlet.
La tarea a realizar, que es el siguiente entregable, es una mini aplicación de un banco, que es gestionada por un servlet. Los pasos a seguir son los siguientes:
1) Crear las clases Usuario, Cuenta y Cuentas, que representan al banco.
2) Implementar una clase de utilidades que realice el marshalling para instancias de la clase Cuentas, y generar el documento XML.
3) Crear una plantilla XSLT para transformar el documento XML a HTML.
4) Implementar un método en la clase de utilidades que realice la transformación.
Todo ello es gestionado por el servlet. Inicialmente, el servlet carga una página jsp (con el método doGet), que se corresponde con el login del usuario.
Tras rellenar el formulario, llamamos al servlet (doPost), que llama a los dos métodos de la clase de utilidades y muestra la información de las cuentas del usuario.
Tras realizar el ejercicio, me di cuenta de que no siempre mostraba el documento actual, ya que lo generaba una vez la aplicación había sido desplegada y muchas veces lo cacheaba, de forma que perdíamos el control sobre el mismo. Se lo comenté al profesor y como alternativa, salió la de eliminar la generación del documento XML, es decir, el método marshall devuelve un StringWriter con el contenido XML y este contenido es transformado a HTML por el método transformXML. De esta forma, además, nos evitamos el tener que almacenar un fichero de trámite, que no interesa al usuario final.
Y con esto damos por terminado el cuarto bloque del curso. La semana que viene comenzaremos el último, el de Java para dispositivos móviles.
Un saludo.
Esta semana hemos visto el último punto del bloque, que consiste en integrar todas las partes del tema con un servlet.
La tarea a realizar, que es el siguiente entregable, es una mini aplicación de un banco, que es gestionada por un servlet. Los pasos a seguir son los siguientes:
1) Crear las clases Usuario, Cuenta y Cuentas, que representan al banco.
2) Implementar una clase de utilidades que realice el marshalling para instancias de la clase Cuentas, y generar el documento XML.
3) Crear una plantilla XSLT para transformar el documento XML a HTML.
4) Implementar un método en la clase de utilidades que realice la transformación.
Todo ello es gestionado por el servlet. Inicialmente, el servlet carga una página jsp (con el método doGet), que se corresponde con el login del usuario.
Tras rellenar el formulario, llamamos al servlet (doPost), que llama a los dos métodos de la clase de utilidades y muestra la información de las cuentas del usuario.
Tras realizar el ejercicio, me di cuenta de que no siempre mostraba el documento actual, ya que lo generaba una vez la aplicación había sido desplegada y muchas veces lo cacheaba, de forma que perdíamos el control sobre el mismo. Se lo comenté al profesor y como alternativa, salió la de eliminar la generación del documento XML, es decir, el método marshall devuelve un StringWriter con el contenido XML y este contenido es transformado a HTML por el método transformXML. De esta forma, además, nos evitamos el tener que almacenar un fichero de trámite, que no interesa al usuario final.
Y con esto damos por terminado el cuarto bloque del curso. La semana que viene comenzaremos el último, el de Java para dispositivos móviles.
Un saludo.
domingo, 13 de junio de 2010
JAXB
Hola.
Esta semana hemos visto JAXB (Java Architecture for XML Binding), que es una API que relaciona las clases Java con los documentos XML.
Con JAXB podemos realizar dos tipos de operaciones:
- Marshall: Transformar un objeto a un documento XML.
- Unmarshall: Construir un objeto a partir de un documento XML.
Pero la gracia de JAXB es la de obtener clases Java a partir de un esquema. Para ello, utilizamos xjc (JAXB Binding Compiler) mediante una tarea Ant.
Un saludo.
Esta semana hemos visto JAXB (Java Architecture for XML Binding), que es una API que relaciona las clases Java con los documentos XML.
Con JAXB podemos realizar dos tipos de operaciones:
- Marshall: Transformar un objeto a un documento XML.
- Unmarshall: Construir un objeto a partir de un documento XML.
Pero la gracia de JAXB es la de obtener clases Java a partir de un esquema. Para ello, utilizamos xjc (JAXB Binding Compiler) mediante una tarea Ant.
Un saludo.
domingo, 6 de junio de 2010
Inicio del Bloque IV - XML
Hola.
Esta semana, como comentaba en la anterior entrada, hemos comenzado un nuevo bloque, el cuarto, que trata sobre XML.
En la sesión del viernes, vimos XSL (Extensible Stylesheet Language), que nos permite dar formato a un documento XML.
El sábado, nos centramos en JAXP (Java API for XML Processing) y más concretamente en StAX (Streaming API for XML)
JAXP es un API de Java para el tratamiento de XML, que trabaja con los siguientes parsers:
- DOM (Document Object Model)
- SAX (Simple API for XML)
DOM requiere tener toda la información en memoria y SAX necesita que parseemos todo el documento. Otra alternativa es StAX, un API basada en eventos, que nos permite acceder a la estructura del documento XML de manera sencilla.
No obstante, en la actualidad se utilizan otras tecnologías, como Castor, JAXB o XMLBeans, que permiten mapear un XML en objetos Java.
La semana que viene, daremos un paso más y veremos una de esas tecnologías, JAXB.
Un saludo.
Esta semana, como comentaba en la anterior entrada, hemos comenzado un nuevo bloque, el cuarto, que trata sobre XML.
En la sesión del viernes, vimos XSL (Extensible Stylesheet Language), que nos permite dar formato a un documento XML.
El sábado, nos centramos en JAXP (Java API for XML Processing) y más concretamente en StAX (Streaming API for XML)
JAXP es un API de Java para el tratamiento de XML, que trabaja con los siguientes parsers:
- DOM (Document Object Model)
- SAX (Simple API for XML)
DOM requiere tener toda la información en memoria y SAX necesita que parseemos todo el documento. Otra alternativa es StAX, un API basada en eventos, que nos permite acceder a la estructura del documento XML de manera sencilla.
No obstante, en la actualidad se utilizan otras tecnologías, como Castor, JAXB o XMLBeans, que permiten mapear un XML en objetos Java.
La semana que viene, daremos un paso más y veremos una de esas tecnologías, JAXB.
Un saludo.
Suscribirse a:
Entradas (Atom)