OpenXava, NaviOX y una aplicación de facturación completa

Hace ya bastante tiempo que hablamos de crear una aplicación con OpenXava y nos pusimos a crear clases, a modelar,…  siguiendo el libro Aprende OpenXava con ejemplos. Hasta ahí todo bien, lo que pasa es que Openxava ofrece muchísimas más cosas y que mejor que las descubramos mediante un post.

Hoy hablaremos sobre un proyecto creado en OpenXava que está en Sourceforge, este proyecto se llamado AcmeOX(http://sourceforge.net/projects/acmeox/)  es una aplicación de facturación realizada con OpenXava para mostrar la potencia del framework.

Además también me llego una noticia sobre NaviOX(http://www.openxava.org/es/naviox) que es un llamémoslo “contenedor de aplicaciones”. NaviOX proporciona a nuestra aplicación Seguridad (usuarios y roles) y navegabilidad. A mí personalmente me sirve para ir probando la aplicación a medida que la voy desarrollando, ya que es muy ligero y me ahorra tiempo a la hora de ir probando/ configurando diferentes entornos.

Creando un proyecto

Lo primero es tener configurado OpenXava, aquí en el blog hay algún artículo sobre esto, sino siempre tienes este manual: http://www.openxava.org/es/quick-start/1c aunque yo recomiendo la instalación del Capítulo 4 del libro “Aprende Openxava con ejemplos” disponible aquí http://www.openxava.org/es/book los 5 primeros capítulos.

*Si tenemos alguna aplicación en el puerto 8080, será mejor que la paremos ya que puede darnos fallos.

Vamos a crear un proyecto Java llamado Acme,

Después de crearlo tenemos que ejecutar la tarea para convertirlo en un proyecto OpenXava.

Importando AcmeOX

Nos descargamos el proyecto AcmeOX y lo descomprimimos en algún lugar, navegamos hasta su carpeta src y arrastramos el contenido hasta nuestra carpeta src.

Quizás existan maneras más didácticas de importar.

Configurando algunos archivos

Yo utilizo como base de datos PostgreSQL, así tengo descargado el jdbc de aquí (http://jdbc.postgresql.org/download.html) y lo he pegado tanto dentro del directorio lib de tomcat como en el directorio lib del proyecto OpenXavaTest.

Crear una base de datos

Creamos una base de datos con el nombre que queramos, yo la he llamado “acme”.

Context.xml

Dentro del directorio tomcat/conf abrimos el archivo contex.xml. Con tomcat parado pegamos algo como esto:

<Resource name="jdbc/AcmeDS" auth="Container" type="javax.sql.DataSource"             
    maxActive="20" maxIdle="5" maxWait="10000"
    username="postgres" password="qwerty" driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://localhost/Acme"/>

Donde username y password son el usuario y la contraseña de vuestra base de datos. Y la base de datos es la que creamos en el paso anterior.

Build.xml

En el archivo build tenemos que poner la ruta hasta unos de los jdbc, es muy descriptivo ya que dice “AQUÍ PONER LA RUTA HASTA….” Esta es la última parte de mi archivo build.xml

<target name="actualizarEsquema">
    <ant antfile="../OpenXava/build.xml" target="updateSchemaJPA">
        <property name="persistence.unit" value="junit"/>
        <property name="schema.path" value="../OpenXavaTest/lib/postgresql-9.1-901-1.jdbc4.jar"/>
    </ant>
</target>

Persistence.xml

Este archivo es el que más quebraderos de cabeza me ha dado, ya que debemos comentar TODOS los persistence-unit, ya que si no, no funcionará nada. Parece obvio pero no es la primera vez que me pasa 😉

Aquí dejo mis persistence-unit:

<persistence-unit name="default">
    <non-jta-data-source>
        java:comp/env/jdbc/AcmeDS
    </non-jta-data-source>
    <class>org.openxava.session.GalleryImage</class>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
        </properties>
</persistence-unit>
<!-- JUnit PostgreSQL -->
<persistence-unit name="junit">
    <properties>
        <property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
        <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
        <property name="hibernate.connection.url" value="jdbc:postgresql://localhost/Acme" />
        <property name="hibernate.connection.username" value="postgres" />
        <property name="hibernate.connection.password" value="qwerty" />
    </properties>
</persistence-unit>

Añadiendo el proyecto a tomcat

Ahora si hemos seguido el capítulo del libro, podremos añadir el proyecto a Tomcat.

Llegados a este punto ya podemos hacer funcionar la aplicación con tan solo desplegar la tarea ant, pero si añadimos NaviOX podremos navegar entre entidades de una manera fácil y podremos tener usuario y paasword para en entrar en la aplicación

Añadiendo NaviOX

Lo primero es descargarnos NaviOX de aquí http://www.openxava.org/naviox es un poco “rollo” porque nos obliga a registrarnos en una newsletter… pero una vez que lo tenemos es coser y cantar.

Aquí dejo un video explicativo de como instalar NaviOX

http://www.openxava.org/es/web/guest/videos/naviox-installation

Una vez descargado tenemos que importar un “archivo file”

*Hay que asegurarse de que Tomcat esté parado.

Ejecutamos la tarea ActualizarOX

Refrescamos el proyecto para ver los nuevos archivos que hemos importado.

Le damos a buildproject y arrancamos tomcat de nuevo.

Arrancamos tomcat y…

oolo tenemos que entrar en nuestra aplicación http://localhost:8080/Acme y poner el usuario y la contraseña (admin, admin) para tener algo como esto:

Esto es todo, al final hemos aprendido a utilizar NaviOX y no ha sido tan difícil, ahora queda seguir aprendiendo sobre anotaciones OpenXava.

Anuncios

2 comentarios en “OpenXava, NaviOX y una aplicación de facturación completa

Comenta la entrada

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s