Inicio rápido

Instala las herramientas necesarias

Descarga e instala OpenXava (si todavía no lo has hecho):
Descarga e instala el JDK (si no lo tienes instalado):
Descarga e instala Eclipse (si no lo tienes instalado):

Configura Tomcat

Has de indicar al Tomcat donde has instalado el JDK.
Con Windows, añade la siguiente línea al principio de catalina.bat en la carpeta tomcat\bin:
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_45
No pongas C:\Program Files\Java\jdk1.8.0_45 pon la ruta en donde está instalado el JDK en tu sistema.
Con Linux o Mac, añade la siguiente línea al principio de catalina.sh en el directorio tomcat/bin:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk
No pongas /usr/lib/jvm/java-8-openjdk pon la ruta en donde está instalado el JDK en tu sistema.

Arranca Tomcat

Arranca el Tomcat, con Windows simplemente haz doble click en startup.bat de tomcat\bin:
quick-start_es020.png
Si usas Linux o Mac ejecuta el startup.sh que se encuentra la carpeta tomcat/bin de OpenXava:
quick-start_es030.png

Arranca Eclipse

Arranca Eclipse, te preguntará que escojas el workspace, escoge el que viene incluido con OpenXava:
quick-start_es010.png
Si ya tenías el Eclipse arrancado usa la opción File >Switch Workspace. Si estás usando una versión antigua de Eclipse te preguntará "Workspace ... was written with a newer version of the product and can be incompatible with this version. If you continue, this can cause unexpected behavior or data loss", no te preocupes, pulsa en OK.

Ejecuta la aplicación de ejemplo

La distribución de OpenXava viene con una aplicación de ejemplo llamada MySchool, para ejecutarla sigue los siguientes pasos.
Construye y despliega el proyecto:
quick-start_es040.png
Ve a http://localhost:8080/MySchool/modules/Teacher usando tu navegador para ver la aplicación en acción:
quick-start_es050.png

Añade otra clase

Añade una clase nueva al proyecto MySchool:
quick-start_es060.png
Después teclea Pupil para la clase:
quick-start_es070.png
Copia el código siguiente en tu clase Pupil:
package org.openxava.school.model;
 
import javax.persistence.*;
import org.openxava.annotations.*;
 
@Entity
public class Pupil {
 
    @Id @Column(length=2) @Required
    private int number;
 
    @Column(length=40) @Required
    private String name;
 
    public int getNumber() {
        return number;
    }
 
    public void setNumber(int number) {
        this.number = number;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
}
Ahora podemos desplegar la aplicación:
quick-start_es040.png
Ve a http://localhost:8080/MySchool/modules/Pupil para ver Pupil funcionando (si pide identificación usa usuario: admin, contraseña: admin):
quick-start_es080.png

Añade una referencia a profesor en alumno

Es fácil hacer que un alumno tenga una referencia a un profesor. Añade el siguiente código a la clase Pupil:
@Entity
public class Pupil {
 
    ...
 
    // INICIO CÓDIGO A AÑADIR
    @ManyToOne
    private Teacher teacher;
 
    public Teacher getTeacher() {
        return teacher;
    }
 
    public void setTeacher(Teacher teacher) {
        this.teacher = teacher;
    }
    // FIN CÓDIGO A AÑADIR
 
}
Despliégalo:
quick-start_es040.png
Ve a http://localhost:8080/MySchool/modules/Pupil y selecciona el modo detalle:
quick-start_es090.png

Visualiza referencia a profesor con un combo

Si queremos que la referencia se visualice en formato combo hemos de añadir la anotación @DescriptionsList a la referencia teacher de Pupil, como sigue:
@Entity
public class Pupil {
 
    ...
 
    @DescriptionsList  // AÑADE ESTO
    @ManyToOne
    private Teacher teacher;
 
    ...
 
}
Ahora despliega de nuevo:
quick-start_es040.png
Ve a http://localhost:8080/MySchool/modules/Pupil:
quick-start_es100.png

Añade una colección de alumnos en profesor

Añadamos una colección de alumnos a profesor. Para eso pon la declaración de la colección dentro de la clase Teacher:
@Entity
public class Teacher {
 
    ...
 
    // INICIO CÓDIGO A AÑADIR
    @OneToMany(mappedBy="teacher")
    private Collection<Pupil> pupils;
 
    public Collection <Pupil> getPupils() {
        return pupils;
    }
 
    public void setPupils(Collection <Pupil> pupils) {
        this.pupils = pupils;
    }
    // FIN CÓDIGO A AÑADIR
 
}
Y despliégalo otra vez:
quick-start_es040.png
Ve a http://localhost:8080/MySchool/modules/Teacher:
quick-start_es110.png

Crea tu propio proyecto

¡Bien hecho! Has ejecutado y modificado un proyecto ya existente. Ahora deberías crear tu propio proyecto OpenXava desde cero:

Sigue la lección: Primeros pasos

¿Algún problema con esta guía? Pregunta en el foro de ayuda.