Entradas

Mostrando entradas de 2010

Servicios Web con JAX-WS

Imagen
Creación del Servicio
Antes de desarrollar mi primer servicio web en java pensaba que éstos eran complicados de desarrollar ya que teníamos que programar absolutamente todos los archivos necesarios para la construcción del servicio, como decía esto era lo que pensaba pero en la práctica, me encontré con que en nuestro MyEclipse se pueden hacer de manera rápida y sencilla como a continuación les muestro. Lo primero es entender que existen diversas tecnologías para desarrollar servicio web como son AXIS, JAX-WS entre otros, en este post me enfocare como lo indica el titulo en JAX-WS (Java API for XML Web Services) que es una API destinada para la creación de servicios web.
Bien vamos a la práctica. En MyEclipse creamos un proyecto tipo Web Service
O bien podemos presionar el botón indicado en la barra de herramientas

Posteriormente ingresamos el nombre del proyecto y nos fijamos en la tecnología en que vamos a desarrollar nuestro servicio, para nuestro caso será JAX-WS
De aquí en adelante …

Configurar Cerrar Sesión

Imagen
Uno de las situaciones más usadas en las aplicaciones web tiene que ver con las acciones que se deben ejecutar al momento de hacer el cierre de sesión de la aplicación, para esto es necesario crear una clase que implemente la interfaz HttpSessionListener la cual nos provee la especificación de los métodos requeridos para ejecutar al momento de crear o cerrar la sesión.

Como se muestra en la figura podemos agregar toda la lógica que requiramos en los dos eventos. Adicional a esta clase debemos indicarle a nuestra aplicación que cuando se lancen estos eventos sea nuestra clase la que se ejecute, paso siguiente es abrir el archivo de configuración de la aplicación web (web.xml) e indicarle en la sección de listeners que la clase que va a escuchar los eventos es nuestra clase, igualmente definimos el tiempo que deseamos que la sesión permanezca activa


Con estos dos pasos hemos configurado en nuestra aplicación el cierre de sesión, ahora lo que se debe programas es la lógica que tendrá cad…

Properties Files

Imagen
Los archivos de propiedades son muy útiles en nuestras aplicaciones java, ya que nos permiten almacenar ciertos valores que son necesarios para la aplicación, pero que en determinado momento pueden cambiar tenemos por ejemplo las direcciones URL de los web servicies, otro ejemplo puede ser el string de conexión a la base de datos, es decir en estos archivos podemos almacenas variables (de configuración del sistema) que permiten de una manera rápida la flexibilidad necesaria al sistema para que no se vea afectado por cambios externos. Los archivos de propiedades los defino como una “pareja” variable – valor en el que se define el nombre de la variable y su respectivo valor.El nombre de la variable es la que se usara dentro de la aplicación para hacer referencia a su respectivo valor. Nombre_variable = valor Creación del archivo de propiedades (.properties) Para esta acción simplemente creamos un nuevo archivo de texto, el cual va a contener toda la configuración (propiedades) de la aplicac…

Java Mail

Imagen
Aunque este tema ya este muy trabajado en muchos tutoriales y existan infinidad de Web dedicadas a explicar como hacerlo, decidí crear este post para mostrar de manera rápida y simple como enviar un correo desde una clase java.
Para el envío de correos desde java se debe incorporar al proyecto el mail.jar que es la librería que contiene toda la funcionalidad para el manejo de correos usando java y activation.jar que permite la validación de los datos contra el servidor de correo. También debemos tener acceso al servidor de correos, que se encarga de realizar el envió a los destinatarios indicados.
En la aplicación se usaran 3 clases de mail.jar que se detallan a continuación:
Session: Representa la conexión con el servidor de correo que tenemos en nuestra empresa; cabe anotar que casi todos los sitios que permiten crear cuentas de correo indican el nombre del servidor (SMTP) que debemos usar para el envío o recepción de correosTransport: Con este objeto es que podemos enviar el mensajeMi…

Enviar SMS desde JAVA

Imagen
En este post comentare sobre un tema que cada día toma más fuerza, ya que nuestros clientes están solicitando que la información la tengan a la mano y en cualquier parte, más aun con el auge de los teléfonos inteligentes. El envío de mensajes de texto (short message service) se convierte prácticamente en un requerimiento implícito a los sistemas de información donde se requiera enviar alarmas, notificaciones, solicitudes de aprobación entre otros ítems, pues bien vamos a desarrollar este tema usando tecnología JAVA.
Lo primero que debemos tener presente es que para la comunicación entre el dispositivo móvil (entiéndase celular) y nuestra aplicación JAVA debe existir un servidor SMPP (Short Message Peer to Peer Protocol)


Estos servidores los podemos encontrar en Google; para nuestro ejemplo voy a usar el de Ozeki NG que además del envío de SMS tiene otras funcionales interesantes como el envío de mensajes desde una base de datos, aunque es licenciado, tiene una versión para pruebas que …

Conceptos de POO

Continuando el tema de POO donde expuse mi definición sobre programación orientada a objetos, doy a conocer algunos conceptos básicos que se usaran en este nuevo mundo.

1. Clase: En el anterior post definimos una clase como algo que tiene atributos y comportamiento.
Definición: Class <<nombreClase>>2. Propiedad: Como su nombre lo indica es una característica que tiene un objeto por ejemplo, una Persona tiene las propiedades nombre, edad. A nivel de POO se le debe definir tanto el nombre como el tipo de dato.
Definición: <<Tipo de dato>> <<nombreAtributo>>3. Método: Son las acciones que puede realizar un objeto, en este sentido en el método se construye el fragmento de código para realizar una acción especifica del objeto.  Los métodos pueden retornar valores en ese sentido se define el tipo de datos que se va a retornar, o si no retornan nada se define con la palabra void.
Definición retornando dato: <<Tipo de dato>> <<nombreMétodo>…

Algo de Humor: Leyes de Java

Me he encontrado con las siguiente "leyes del programador" las cuales se encuentra en el blog Apuntes de JAVA 
Todo programa que empieza bien, acaba mal. Todo programa que empieza mal, acaba peor. Siempre trabaja en equipo al hacer algún programa, esto da oportunidad de echarle la culpa a otro. Si el Debuggear es el proceso de remover Bugs, entonces el programar debe ser el proceso de ponerlos Por cada Bug que elimines en un programa, apareceren tres más. Programar es como el sexo, un error y hay que soportarlo para el resto de la vida. Las dos frases más repetidas y más falsas en la programación: "Esta ocasión si correrá bien" y "Acabo de encontrar el último Bug". Todos los programadores en esencia son optimistas, hasta que terminan su programa. Cada programa interesante tiene cuando menos una variable, un procedimiento, un loop.....y de hecho un bug. Las computadoras siempre tienen una excusa, los programadores no. No importando cuanto tiempo hayas prob…

Introduccion Programacion Orientada a Objetos

Los saludo, no sin antes ofrecerles una disculpa ya que este post debió ser el primero en la lista, pero por cuestiones de trabajo no ordene bien mis ideas, bien lo realmente importante es que lo voy a publicar y espero que sea de su ayuda.

Voy a intentar definir el concepto en palabras sencillas; La programación orientada a objetos (POO) es una "forma" de programación muy relacionada con las cosas que vemos en nuestro alrededor, esta ligado a todo aquello que conocemos en nuestro mundo como un objeto.  Si bien en el mundo real un objeto puede ser cualquier cosa, es importante destacar ciertos comportamientos y propiedades que ellos pueden tener, por ejemplo si vemos una persona, vemos que tiene una propiedades (nombre, identificación, teléfono, etc.) o atributos, pero también puede ejecutar algo o realizar acciones (caminar, saltar, hablar). 

En este punto definimos una Clase (objeto a nivel de programación) como todo aquello que posee atributos o propiedades y que además …

Tareas Programas en JAVA

Imagen
En este post explicare como crear tareas programadas (procesos que corren constáteme basado en parámetros de ejecución) con JAVA usando la librería gratuita QUARTZ; esta librería nos permite de manera administrar cualquier tipo de tarea programada que necesitemos crear.

La estructura que vamos a trabajar será la siguiente:

Una clase para la fabrica de programación (Scheduler) como se ve en la figura, la cual nos sirve para construir las programaciones de nuestras tareas. Una clase que define la tarea programada: En ella se crea la programación, se define que proceso se va a ejecutar y por ultimo se define cada cuanto se ejecutara el proceso
Definimos de la clase que contiene el proceso o la tarea que deseamos que se ejecute en la programación.

Ya definimos, la tarea, construimos la programacion de la tarea solo nos falta lanzar la aplicacion para que esta se ejecutada de acuerdo a las condiciones de tiempo que le definimos.

Con las siguientes líneas de código se invoca la tarea y con ell…

PDF y JAVA

Cada vez es mas frecuente que la información que necesitamos presentar al usuario sea entregada en formato PDF, ya sea para visualizarlo en el navegador o para descárgala. En mi experiencia con este tipo de formatos, nos tocaba hacer bastantes “triquiñuelas” con el fin de dar solución a esta necesidad.

Hace poco descubrí la librería gratuita iText.jar, la cual contiene todo lo necesario para que este trabajo resulte más simple de lo imaginado; por este motivo les presento mis apuntes.

Generar PDF al vuelo: Documento generado dinámicamente basado en el procesamiento de los datos ingresados por el usuario.

import com.lowagie.text.Document;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;

OutputStream file = new FileOutputStream(new File("C:\\prueba.pdf"));
Document document = new Document();
PdfWriter.getInstance(document, file);
document.open();
document.add(new Paragraph("Hola a todos!"));
document.add(new Paragraph(new Date().toString())…

Trabajar con ICEFaces

Imagen
Ya con la teoría clara sobre ICEFaces, viene lo mejor, su aplicabilidad en nuestras aplicaciones Web, para esto usaremos MyEclipse un IDE para JAVA y arranquemos pues…

Adicionar la tecnología ICEFaces en nuestra aplicación
1. Crear un proyecto tipo Web y marcamos la opción de JSTL (librerías requeridas para la creación de JSPs)

2. Adicionamos las funcionalidades de JSF (Java Server Faces) y verificamos las propiedades de ubicación del faces-config.xml

3. Adicionamos las librerías de ICEFaces a las propiedades del proyecto
Click derecho en el proyecto.Luego click en propieddes.Luego nos ubicamos en Java Build Path.Luego presionamos el boton Add Library.Seleccionamos las librerías de MyEclipse.Buscamos la librería ICEfaces Library v1.7.1 (JSF 1.2), la marcamos y finalizamos este procesoDesde este punto ya podemos crear nuestras paginas Web (JSP) con los componentes de ICEFaces. A continuación se presenta la creación de la JSP, el Managed-Bean y la Clase que contiene la lógica, NO es precis…

Primeros Pasos de ICEFaces (Parte II)

Como se vio en la primera entrega sobre ICEFaces la columna vertebral de esta tecnología es el archivo faces-config.xml el cual se configuran múltiples propiedades, dentro de las cuales me enfocare en explicar de manera simple las siguientes
1. Manage Bean: En esta propiedad se definen los objetos (clases) que comunican la JSP con la lógica de la aplicación, en otras palabras el “Bean” como también se le conoce, es el componente que tiene toda la información que el usuario desea ver y que usa una JSP como medio para visualizar estos datos. Se define de la siguiente manera.

<managed-bean>
<managed-bean-name>banco</managed-bean-name>
<managed-bean-class>co.com.crearapps.beans.BancoBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>

Como se puede ver tenemos los siguientes atributos:
managed-bean-name: Define el nombre del bean dentro de la JSP, esto quiere decir, que dentro de la JSP usaremos al bean co…

Primeros Pasos de ICEFaces

Cuando me dijeron que debía construir una aplicación con ICEFaces quede como un zombi, sentí que mi expresión corporal cambio de forma inmediata a un estado de desconocimiento total, pero al mismo tiempo vi la oportunidad de tener un nuevo conocimiento en este mundo del desarrollo, mi respuesta aunque algo nerviosa fue que si podía hacerlo (como normalmente respondo a nuevos retos), así conociera de antemano que no manejaba el tema.

Lo primero que hice y que sugiero que se haga siempre cuando uno desconoce un tema es ir nuestro amado Google, busque información respecto del tema, leí varía documentación de cómo implementar ICEFaces, como funciona, que ejemplos habían disponibles ya que de alguna manera entiendo mejor en forma practica que de forma teórica; eso si, sin dejar de la lado que la teoría es vital para tener conceptos claros de lo que estamos haciendo. De todo este tiempo de leer y poner en práctica ciertos modelos que aprendí de la Web, decidí crear este espacio para present…

Empezar con Hibernate

El mapeador que esta causando revuelo en el mundo de la programacion, ha llegado a mis necesidades laborales y por tal condicion toco aprender a usarlo aunque no a nivel de experto si con suficiencia para darlo a conocer.

Hace poco tiempo que empecé a trabajar con este mapeador y la verdad que al principio me tope con muchos problemas de hecho, lo primero que hice fue leer para que sirve, como funciona, que beneficios tiene, porque las aplicaciones deberían tener este componente. Lo que conseguí con esto fue lograr entender su funcionamiento y su facilidad para extraer información de diversos motores de datos.


Hibernate es para mi la capa intermedia entre el lógica de la aplicación y el motor de base de datos, es decir es un componente que de una u otra manera conoce los dos “mundos” en los cuales nos estamos moviendo, de allí su definición de mapeador objeto relacional, en él se definen básicamente lo siguiente:

La conexión con la base de datos.Los archivos que contienen las consultas.…