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.
Super!! genial justo ando buscando como cambiar la interfaz por defecto que trae openxava!!! Veré si lo logro realizar en mi proyecto…
Me gustaMe gusta
Cambiar la interfaz de openxava es «complicado» en un principio. Podrías intentar utilizar tunear los css para darle un cambio a la interfaz.
Me gustaMe gusta