Puedes desplegar tus aplicaciones
OpenXava en cualquier servidor de aplicaciones Java con soporte de Servlet
3.1 o superior. Para esta guía vamos a usar Apache Tomcat para desplegar
tu aplicación OpenXava. Tomcat es el servidor de aplicaciones Java más
usado y robusto, ideal para entornos de producción.
Descargar e instalar Tomcat
Descarga Tomcat 9
desde Apache. OpenXava también funciona bien con Tomcat 8 and Tomcat 10.
Descomprime el Tomcat en una carpeta de tu elección. Ve a la carpeta
webapps
y borra las carpetas que hay dentro:
docs, examples, host-manager,
manager and
ROOT. Son aplicaciones de ejemplo y
administración que no deberías tener en un sistema de producción.
Crear y desplegar el WAR
Para desplegar tu aplicación en Tomcat has de crear un archivo WAR desde
tu proyecto. Para ello, pulsa con el botón derecho del ratón en tu
proyecto y escoge Run As > Maven build...:
En el diálogo pon package
para el campo Goals:
Adicionalmente, puedes poner un
nombre mejor como facturacion package en este caso. Pulsa en Run.
Espera a que termine la ejecución.
O si tienes Maven instalado en tu
ordenador y prefieres usar la línea de órdenes:
$ cd facturacion
$ mvn package
Después coge el archivo
facturacion.war (o
tunombreaplicacion.war)
de la carpeta
target de tu proyecto y cópialo en la carpeta
webapps
de tu Tomcat. Tu aplicación ya está desplegada. ¡Ojo! Para Tomcat 10 has
de crear una carpeta llamada
webapps-javaee dentro de la carpeta
del Tomcat 10 y después copia ahí el war, en lugar de a
webapps.
Ejecutar Tomcat
Para
arrancar tu Tomcat, con Windows pulsa el botón de Inicio,
teclea cmd
y pulsa INTRO, entonces::
set JAVA_HOME=C:\Program Files\Java\jdk-11.0.3
cd tomcat-9.0.64\bin
startup
Con Linux/Mac:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
cd tomcat-9.0.64/bin
./startup.sh
Por supuesto, ajusta las URLs
para tus propios directorios del Tomcat y Java.
¡Enhorabuena! Tu aplicación ya
está funcionando en producción, ya puedes usar tu navegador para
probarla.
Configurar contra la base de datos de producción
Por defecto tu aplicación va contra la misma base de datos que usas en
desarrollo, la que tienes definida en la fuente de datos en src/main/webapp/META-INF/context.xml
de tu proyecto. La mayoría de las veces vas a querer una base de datos
diferente para producción. Para sobreescribir la base datos usada por tu
aplicación has de definir la fuente de datos en el context.xml que
se encuentra en la carpeta conf de tu Tomcat. Para nuestro
ejemplo, deberíamos editar tomcat-9.0.64/conf/context.xml y
dejarlos de la siguiente manera:
<?xml version="1.0" encoding="UTF-8"?>
<!-- The contents of this file will be loaded for each web application -->
<Context>
<!-- Default set of monitored resources. If one of these changes, the -->
<!-- web application will be reloaded. -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
<Resource name="jdbc/facturacionDS" auth="Container" type="javax.sql.DataSource"
maxTotal="20" maxIdle="5" maxWaitMillis="10000"
username="facturacion" password="afj30" driverClassName="org.hsqldb.jdbcDriver"
url="jdbc:hsqldb:hsql://localhost:1999"/>
</Context>
Usamos facturacionDS como
nombre de fuente de datos, el mismo que en el context.xml incluido
en tu WAR, pero definiendo url, username y password
diferentes.