|
OpenXava: Desarrollar aplicación web profesional con OpenXava y Eclipse de forma gratuita
Explicamos paso a paso cómo instalar el IDE de desarrollo gratuito Eclipse en un equipo con Microsoft Windows 7 (válido para otros sistemas operativos Microsoft), mostramos cómo descargar y OpenXava para integrarlo con Eclipse. Mostramos cómo iniciar y modificar una aplicación de ejemplo en OpenXava. Como motor de base de datos usaremos MySQL Server, explicamos cómo conectar nuestras aplicaciones OpenXava con MySQL Server.
OpenXavaOpenXava es un marco de trabajo de código abierto para desarrollar aplicaciones de gestión de una forma efectiva. Permite el desarrollo rápido y fácil de mantenimientos y listados pero, a su vez, es lo suficientemente flexible para desarrollar complejas aplicaciones de gestión de la vida real como contabilidad, facturación, gestión de personal, nóminas, gestión de almacenes, etc. OpenXava permite definir aplicaciones simplemente con POJOs, JPA y anotaciones de Java 5. Actualmente OpenXava genera aplicaciones web Java (J2EE/JavaEE), que pueden ser desplegadas en cualquier portal Java (JSR-168) como una aplicación de portlets. La esencia de OpenXava es que el desarrollador define en vez de programar, y el marco provee automáticamente la interfaz de usuario, el acceso a los datos, el comportamiento por defecto, etc. De esta manera, todo lo común se resuelve fácilmente, pero siempre el desarrollador tiene la posibilidad de programar manualmente cualquier parte de la aplicación, de esta forma es lo bastante flexible para resolver los casos particulares. OpenXava está basado en el concepto de componente de negocio. Algunas característistica de OpenXava son:
EclipseEclipse es un entorno de desarrollo integrado de código abierto multiplataforma para desarrollar Aplicaciones de Cliente Enriquecido, opuesto a las aplicaciones Cliente-liviano basadas en navegadores. Esta plataforma, típicamente ha sido usada para desarrollar entornos de desarrollo integrados (del inglés IDE), como el IDE de Java llamado Java Development Toolkit (JDT) y el compilador (ECJ) que se entrega como parte de Eclipse (y que son usados también para desarrollar el mismo Eclipse). Sin embargo, también se puede usar para otros tipos de aplicaciones cliente, como BitTorrent o Azureus. Eclipse es también una comunidad de usuarios, extendiendo constantemente las áreas de aplicación cubiertas. Un ejemplo es el recientemente creado Eclipse Modeling Project, cubriendo casi todas las áreas de Model Driven Engineering. Eclipse fue desarrollado originalmente por IBM como el sucesor de su familia de herramientas para VisualAge. Eclipse es ahora desarrollado por la Fundación Eclipse, una organización independiente sin ánimo de lucro que fomenta una comunidad de código abierto y un conjunto de productos complementarios, capacidades y servicios. La base para Eclipse es la Plataforma de cliente enriquecido (del Inglés Rich Client Platform RCP). Los siguientes componentes constituyen la plataforma de cliente enriquecido:
Los widgets de Eclipse están implementados por una herramienta de widget para Java llamada SWT, a diferencia de la mayoría de las aplicaciones Java, que usan las opciones estándar Abstract Window Toolkit (AWT) o Swing. La interfaz de usuario de Eclipse también tiene una capa GUI intermedia llamada JFace, la cual simplifica la construcción de aplicaciones basadas en SWT. El entorno de desarrollo integrado (IDE) de Eclipse emplea módulos (plug-in) para proporcionar toda su funcionalidad al frente de la plataforma de cliente enriquecido, a diferencia de otros entornos monolíticos donde las funcionalidades están todas incluidas, las necesite el usuario o no. Este mecanismo de módulos es una plataforma ligera para componentes de software. Adicionalmente a permitirle a Eclipse extenderse usando otros lenguajes de programación como son C/C++ y Python, permite a Eclipse trabajar con lenguajes para procesado de texto como LaTeX, aplicaciones en red como Telnet y Sistema de gestión de base de datos. La arquitectura plugin permite escribir cualquier extensión deseada en el ambiente, como sería Gestión de la configuración. Se provee soporte para Java y CVS en el SDK de Eclipse. Y no tiene por qué ser usado únicamente para soportar otros lenguajes de programación.
HSQLDBHSQLDB ó HyperSQL (Hyperthreaded Structured Query Language Database) es un sistema gestor de bases de datos libre escrito completamente en Java. La última versión de HyperSQL (2.1) introduce mejoras en todos los ámbitos. Es compatible con la más amplia gama de características estándar SQL como cualquier otro motor de base de datos.. HSQLDB está basado en HypersonicSQL, un proyecto de Thomas Mueller abandonado en la actualidad. Las características más importantes de HSQLDB:
Instalar Eclipse Helios en Microsoft WindowsEn primer lugar descargaremos Eclipse Helios desde la web oficial, descargaremos Eclipse IDE for Java EE Developers, descargaremos la versión 32 ó 64 bits según sea la arquitectura de nuestro procesador y el sistema operativo instalado:
Seleccionaremos el origen de la descarga del fichero eclipse-jee-helios-SR2-win32.zip (en nuestro caso desde RedIRIS): Marcaremos "Guardar archivo" y pulsaremos "Aceptar": Se iniciará la descarga del fichero eclipse-jee-helios-SR2-win32.zip de 206MB: Descomprimiremos el fichero descargado: Cortaremos la carpeta descomprimida "eclipse": Y la pegaremos en la carpeta donde queramos dejarlo definitivamente, en nuestro caso hemos creado una carpeta llamada "desarrollo" y dentro de esta iremos colocando todos las herramientas y proyectos para realizar aplicaciones. Pegaremos la carpeta "eclipse": Eclipse no necesita instalación, con descomprimir el fichero es suficiente. Para ejecutarlo abriremos el fichero "eclipse.exe" haciendo doble cli sobre él o pulsando con el botón derecho y seleccionando "Ejecutar como administrador" (aunque no es necesario): Si lo hemos ejecutado como administrador, el Control de cuentas de usuario de Microsoft Windows 7 nos mostrará una advertencia, pulsaremos "Sí": Se iniciará Eclipse Helios, nos preguntará la ubicación del Workspace seleccionaremos nuestra carpeta de "desarrollo" (más adelante cambiaremos el Workspace o espacio de trabajo para OpenXava): Y ya tendremos disponible el IDE Eclipse Helios para desarrollar aplicaciones Java:
Instalar Java SE Development Kit, preparar el entorno de desarrolloDescargaremos el Java SE Development Kip desde la web oficial de Oracle:
Leeremos los términos de licencia, si estamos de acuerdo marcaremos "Accept License Agreement ". Seleccionaremos la versión que se adapte a nuestro sistema operativo y a la arquitectura de nuestro equipo (en nuestr ocaso "Windows x86" jdk-6u25-windows-i586.exe de 77MB: Pulsaremos en "Guardar archivo": Tras la descarga ejecutaremos el fichero para iniciar el asistente de instalación de Java SE Development Kit, pulsaremos "Next": Anotaremos la carpeta donde se instalará el JDK (por defecto C:/Archivos de programa/Java/jdk1.6.0_25) y pulsaremos "Next": Tras la instalación de JDK, el asistente solicitará instalar el JRE, pulsaremos "Next": Tras la instalación, comprobaremos que los ficheros del JDK están en la carpeta que hemos anotado: A continuación añadiremos la variable de entorno JAVA_HOME, necesaria para la ejecución de Tomcat. Para ello accederemos al botón "Iniciar" de Microsoft Windows 7, pulsaremos con el botón derecho en "Equipo" y seleccionaremos "Propiedades": Pulsaremos en "Configuración avanzada del sistema": En la pestaña "Opciones avanzadas" pulsaremos en "Variables de entorno": En "Variables del sistema" pulsaremos en "Nueva": Introduciremos los siguientes datos:
Pulsaremos "Aceptar" y quedará guardada la variable de entorno JAVA_HOME que más tarde necesitará Tomcat para su ejecución: Descargar y configurar OpenXava, Tomcat y enlace con Eclipse, preparar el entorno de desarrolloUna vez instalado Eclipse, instalado JDK y añadida la variable de entorno JAVA_HOME, descargaremos e instalaremos OpenXava (que ya lleva incluido Tomcat). Para ello accederemos a la web oficial de OpenXava a la sección de descargas:
Pulsaremos en la descarga disponible (en el momento de realizar este manual la versión 4.1.2):
Guardaremos el archivo comprimido con OpenXava (openxava-4.1.2.zip): Descomprimiremos el fichero openxava-4.1.2.zip descargado: Podremos decomprimirlo directamente en nuestra carpeta "desarrollo": Una vez descomprimido podemos cambiar el nombre a la carpeta y dejar sólo "openxava". Accederemos a la carpeta de OpenXava y ejecutaremos Tomcat haciendo doble clic sobre el fichero "start-tomcat.bat": Microsoft Windows 7 nos mostrará una advertencia de seguridad al abrir un archivo ejecutable descargado de Internet, pulsaremos "Ejecutar": Si todo es correcto y el puerto 8080 (puerto por defecto de Tomcat) no está siendo usado por otra aplicación, se iniciará el servicio Tomcat y tendremos disponible este servidor web y de aplicaciones. Se abrirá una ventana de MS-DOS, al final de la carga de Tomcat indicará "INFO: Server startup in xxx ms": Si no se muestra la ventana anterior es porque Tomcat no ha podido iniciarse, en ese caso podremos ver el log del error que se ha producido en:
Si todo es correcto y se ha inicado Tomcat, abriendo un navegador web y accediendo a la URL:
Debe aparecernos la página inicial de Apache Tomcat: Ya tendremos disponible este servidor web y servidor de aplicaciones web para su uso. Ahora abriremos Eclipse Helios, nos mostrará la ventana de selección del espacio de trabajo "Workspace". En "Workspace" seleccionaremos la carpeta "workspace" de OpenXava, en nuestro caso:
Si no queremos que nos vuelva a preguntar por el Workspace marcaremos "Use this as the default and do not ask again". Pulsaremos "OK": Con estos sencillos pasos ya tendremos preparado el entorno de desarrollo Eclipse para usar el framework OpenXava para desarrollar aplicaciones web profesionales de forma sencilla y casi sin usar código (lo genera OpenXava de forma automática). Nota: si no nos aparece la ventana de selección del Workspace en Eclipse, podremos abrirla desde el menú "File" - "Switch Workspace" - "Other":
Ejecutar aplicación de prueba OpenXava MiEscuelaOpenXava incluye varios ejemplos en su descarga, uno de ellos es MiEscuela. Para ejecutarlo y probarlo seguiremos los siguientes pasos. Tras instalar Eclipse, OpenXava y configurar e iniciar Tomcat abriremos Eclipse usando como Workspace la carpeta "workspace" de OpenXava (como ya hemos explicado en este artículo). En la parte izquierda, en el Package Explorer de Eclipse, nos aparecerán los proyectos de ejemplo de OpenXava, seleccionaremos "MiEscuela" y pulsaremos en el botón "Run": Tras la compilación del proyecto (lo indicará en la pestaña "Console") OpenXava, pulsaremos en el menú "Project" - "Build All" (Control + B): Tras la construcción del proyecto (lo indicará en la pestaña "Console" con "BUILD SUCCESSFUL") pulsaremos en el botón "Run" y seleccionaremos "MiEscuela.desplegarWar": Ahora, para probar la aplicación de prueba MiProfesor compilada anteriormente, abriremos un navegador de Internet y accederemos a la URL:
Si todo es correcto nos mostrará la aplicación MiEscuela de ejemplo de desarrollo en OpenXava:
Podremos realizar pruebas de filtros, búsqueda, ordenación, inserción, eliminación, etc.:
Dicha aplicación estará disponible para cualquier equipo de nuestra red (siempre que hayamos abierto el puerto 8080 en el cortafuegos del equipo donde hemos instalado en entorno de desarrollo) e incluso disponible desde Internet si hemos mapeado (redireccionado) convenientemente el puerto 8080 del router o cortafuegos de nuestra LAN a la IP del equipo con el servidor web Tomcat. Por supuesto, antes de permitir accesos externos a la aplicación conviene tener en cuenta el número de usuarios que se conectarán concurrentemente así como la cantidad aproximada y tipo de transacciones que realizarán. Con esta valoración deberemos estimar las características hardware de nuestro servidor con Tomcat, la aplicación OpenXava y la base de datos. Por supuesto no es recomendable usar el mismo equipo que usamos para desarrollo como servidor para la aplicación y la base de datos, es conveniente (mediante virtualización u otras técnicas) tener un equipo de pruebas para el desarrollo y separarlo del equipo en producción.
Cambiar base de datos de HSQLDB a MySQL en aplicaciones OpenXava y EclipseOpenXava, por defecto, en sus ejemplos, usa como base de datos HSQLDB que ya viene embebida en Tomcat para su uso directo, sin tener que configurar nada. Vamos a explicar cómo cambiar la base de datos HSQLDB por el motor de bases de datos MySQL Server. Obviamente, como requisito indispensable necesitaremos disponer de un equipo (sea Linux ó Windows) con el motor de base de datos MySQL Server instalado, en los siguientes enlaces explicamos cómo instalar MySQL Server en varios sistemas operativos (Linux y Windows):
Accederemos a MySQL Server con MySQL Administrator o cualquier otro software que permita crear un nuevo esquema y ejecutar consultas SQL. Crearemos el esquema para nuestra aplicación OpenXava, en el caso de MySQL Administrator, pulsando con el botón derecho sobre los esquemas y seleccionando "Crear New Schema": Nos conectaremos al esquema creado con MySQL Query Browser o cualquier otro software que permita ejecutar CREATE en la base de datos y ejecutaremos la siguiente consulta SQL para crear la tabla "Profesor" con los campos "codigo" y "nombre":
Una vez que hayamos creado el esquema y la tabla en la base de datos MySQL Server es conveniente y recomendable crear un usuario que sólo tenga acceso a este esquema, por seguridad, para no usar el superusuario root en nuestra aplicación OpenXava pues podría acceder a cualquier esquema y realizar cualquier acción. Teniendo en cuenta que será una aplicación Web hay que tener precaución y usar un usuario de MySQL sólo con permisos para las tablas de la aplicación. Así pues, desde MySQL Administrator, en la opción "User Administration" pulsaremos en "Add new user": En la pestaña "User Information" introduciremos el nombre del usuario que usaremos para OpenXava, por ejemplo "ajpdsoft" (en MySQL User) y la contraseña de este usuario: En la pestaña "Schema Privileges" estableceremos los permisos para este usuario, es recomendable no asignar los permisos de CREATE, DROP, GRANT, ALTER, TRIGGER, CREATE_ROUTINE y ALTER_ROUTINE pues son peligrosos para uso por una aplicación Web. Así pues, seleccionaremos en "Schemata" el esquema creado anteriormente "bdopenxava", en "Available Privileges" iremos pasando a "Assigned Privileges" los permisos que queramos asigrnale: SELECT, INSERT, UPDATE, DELETE, LOCK_TABLES, SHOW_VIEW y EXECUTE. Una vez que hayamos asignado los privelios pulsaremos en "Apply changes": Tras disponer del servidor con MySQL Server, el esquema, las tablas y el usuario y contraseña, configuraremos ahora Tomcat para que admita acceso a MySQL Server para ello descargaremos el driver JDBC de la web oficial de MySQL:
Descargaremos el fichero mysql-connector-java-5.1.16.zip para Windows, lo descomprimiremos y copiaremos el fichero mysql-connector-java-5.1.15-bin.jar descomprimido: Lo pegaremos en la carpeta .../tomcat/lib:
Si tenemos iniciado Tomcat deberemos detenerlo y volverlo a iniciar para que "coja" el nuevo driver añadido. Tras instalar el driver JDBC para MySQL, ahora abriremos el fichero de configuración de conexiones "context.xml" con cualquier editor de texto plano (notepad, wordpad, notepad++, etc.). Dicho fichero se encuentra en:
Cambiaremos el siguiente texto correspondiente al recurso de conexión MiEscuelaDS:
Por este otro para acceso a la base de datos MySQL creada anteriormente:
Guardaremos los cambios: Es recomendable, si tenemos Tomcat abierto, cerrarlo y volverlo a abrir, para que todos los cambios se apliquen correctamente. A partir de ahora, cuando los usuarios accedan a nuestra aplicación MiEscuela con OpenXava los datos los consultarán y modificarán en nuestro servidor MySQL. Todo ello sin cambiar ni una sola línea de código en nuestro proyecto: Los datos, como decimos, quedarán guardados en MySQL:
Modificar proyecto MiEscuela de OpenXava, probando las características de OpenXavaVamos a realizar algunas modificaciones en el proyecto de ejemplo que viene con OpenXava MiEscuela. Vamos a añadir una nueva entidad llamada "Alumno" y vamos a ver el resultado. Abriremos nuestro proyecto OpenXava desde Eclipse como hemos explicado anteriormente, accederemos a Package Explorer, a "MiEscuela" - "src" - "org.openxava.escuela.modelo", seleccionaremos "Profesor.java" y pulsaremos en "Copy": Seleccionaremos "org.openxava.escuela.modelo", pulsaremos el botón derecho y seleccionaremos "Paste": Introduciremos el nombre para la nueva clase, en nuestro caso "Alumno": Haremos doble clic sobre el nuevo fichero creado "Alumno.java", añadiremos una nueva columna de ejemplo "dni", para ello añadiremos el siguiente código: @Column(length=10) private String dni; public String getDni() { return dni; } public void setDni(String dni) { this.dni = dni; } Con estos sencillos pasos ya tendremos preparado el proyecto con una nueva opción "Alumnos", sin añadir ni una sola línea de código, sólo con la definición de las entidades y columnas, OpenXava se encargará de forma totalmente automática de generar la interfaz gráfica para la nueva entidad Alumno. Lo único que nos falta, obviamente, es crear la tabla "Alumno" en MySQL Server con los campos: codigo, nombre y dni, para ello podremos ejecutar la siguiente sentencia SQL desde cualquier administrador de MySQL:
Y ya podremos recompilar la aplicación pulsando en Run: Pulsaremos en "Project" - "Build All":
Para ver el resultado, accederemos a la URL:
Y ya tendremos disponible la ventana para los Alumnos, sin usar ni una sola línea de código, gracias a OpenXava. Podremos añadir nuevos alumnos pulsando en "Nuevo": Nos mostrará una ventana de edición para añadir el alumno con los campos indicados en la clase java Alumno: En la lista tendremos disponibles todas las opciones: nuevo registro, eliminar registros, generar listado en PDF o CSV (Excel), cambia vista a lista, detalle o ambas, filtros personalizados, ordenar por cualquier columna, etc.: Otra prueba, para comprobar la sencillez de manejo y flexibilidad de OpenXava, vamos a enlazar los alumnos con los profesores, de tal forma que un alumno tenga un profesor asociado y un profesor tenga varios alumnos asociados. Para ello editaremos el fichero "Alumno.java" y añadiremos: @ManyToOne private Profesor profesor; public Profesor getProfesor() { return profesor; } public void setProfesor(Profesor profesor) { this.profesor = profesor; } Ahora, como siempre que añadimos una nueva entidad o campo en nuestro proyecto OpenXava deberemos añadirlo en la base de datos. En este caso añadiremos el campo "profesor_codigo" (pues es el nombre que le da OpenXava al campo por defecto) en la tabla "Alumno" con el tipo de datos VARCHAR(5) que debe ser el mismo tipo de datos que la clave primeria de la tabla "Profesor" que es con la que enlazaremos mediante la clave foránea "profesor_codigo". Para añadir este campo a la tabla "Alumno" ejecutaremos la siguiente consulta SQL en cualquier software que permita ejecutar consultas SQL contra MySQL:
O bien hacerlo gráficamente con MySQL Administrador, editando la tabla: Ahora ya podremos probar esta nueva característica para nuestra aplicación web, volveremos a compilarla y volveremos a abrirla con el navegador web. Como siempre con OpenXava, nos habrá generado la modificación, en este caso añadiendo una nueva opción de selección de Profesor al dar de alta un nuevo Alumno: Además, OpenXava incluye opción de selección del Profesor mediante lista, o incluso añadir un nuevo profesor desde la ventana de Alumno:
En este caso hemos realizado un enlace "Muchos a uno" (ManyToOne). De forma que un Alumno sólo podrá estar asociado con un Profesor. Ahora vamos a definir una conexión "Uno a muchos" (OneToMany) en el caso del Profesor, que podrá tener varios Alumnos asociados. Para ello editamos el fichero Profesor.java de nuestro proyecto OpenXava y añadimos las siguientes líneas: @OneToMany(mappedBy="profesor") private Collection Nota: para que el código anterior funcione hay que añadir en la parte inicial de la clase "Profesor" el import:
En este caso no es necesario añadir campos a la tabla MySQL pues el enlace ya ha quedado grabado en la tabla Alumno mediante la clave foránea "profesor_codigo", por lo tanto podremos compilar la aplicación directamente para ver la nueva característica, en este caso en Profesor: http://localhost:8080/MiEscuela/modules/Profesor OpenXava nos mostrará la lista de Profesores, seleccionando uno de ellos para ver el detalle: Nos habrá creado de forma automática la nueva característica de mostrar los alumnos asociados con el profesor. Desde aquí podremos quitar o añadir alunos a la lista de asociados con el profesor actual: Conclusiones sobre OpenXavaOpenXava es una herramienta fabulosa, una utilidad añadida a Eclipse para desarrollar aplicaciones web profesionales y con un buen diseño sin apenas conocimientos de programación. Que, además, separa la lógica de negocio de la interfaz gráfica y permite cambiar de motor de base de datos sin realizar modificaciones en el código. Por ello es una muy buena opción para desarrollar aplicaciones Java (JSP) para servidores web de forma profesional y con multitud de opciones que lo hacen sumamente flexible. Sin duda lo recomendamos para desarrollo de aplicaciones web profesionales de facturación, contabilidad, recursos humanos, helpdesk, almacén, control de stock, gestión, etc. Una de las maravillas de OpenXava es que necesitaremos una curva de aprendizaje muy pequeña, en poco tiempo adquiriremos los conocimientos necesarios para desarrollar aplicaciones, con lo cual podremos dedicar el tiempo no perdido en formación a desarrollar más aplicaciones y conseguir más ingresos.
Artículos relacionados
|
|