Actualización Tienda Online Java EE: Tomcat y persistencia con Postgres

TiendaOnline Java EE

Recientemente se puso en contacto conmigo un lector preguntándome si era posible usar la Tienda Online en Java EE que publiqué hace tiempo con Tomcat y añadir la persistencia con Postgres en vez de con MySQL.

Yo le dije que no había trabajado con ninguno de los dos productos pero que debería de ser posible modificando el descriptor de despliegue propio del servidor de aplicaciones y añadiendo una nueva clase de persistencia para Postgres, dado que si recordamos la tienda online implementa un patrón DAO lo que hace que la persistencia se independiente.

Pues bien, el lector llamado José Cabrera no sólo logró hacer las modificaciones con éxito sino que me las pasó para que las publicara, un gesto muy amable por su parte. De esta manera todos podremos ver la riqueza de usar el patrón DAO y ver lo fácil que puede ser modificar la aplicación.

Así que yo ahora lo único que voy a hacer es transmitir lo que él me dio, todo el mérito es suyo y yo lo único que voy a hacer es ponerlo bonito.

Paso 1: Configuración de la base de datos

Lo primero que hay que hacer es crear la base de datos en Postgres y para ello necesitamos la configuración que nos ha dado José.

Paso 2: Configuración del proyecto en Netbeans

Desde el netbeans se cambia el servidor (IDE Netbeans 7.2.1)
Clic derecho sobre el proyecto
Pestaña RUN (Ejecutar) Se cambia el servidor (Apache Tomcat 7.0.27.0)

Se cambia el contenido de context.xml

ANTERIOR

CAMBIAR POR

Lo anterior crea un recurso que sera consumido por el web.xml

Paso 3: Configuración del web.xml

En web.xml se debe tener el siguiente fragmento

Paso 4: Cambios en el código de la aplicación

Comentar que José ha hecho directamente las modificaciones sobre PersistenceBD, pero podría haber hecho una copia de la misma modificándola y añadir una posibilidad más a la clase PersistenceFactory para iniciar tener otra clase de persistencia.

En PersistenceBD

En el MÉTODO init
cambiar nameBD = historiales;
por     nameBD = “public”; //–>jocka
En postgres se utiliza esquemas y el esquema por defecto es el public.
Otra solucion seria crear un esquema con el mismo nombre de la base de
datos en ese canso no seria necesario realizar el remplazo anterior.

En el MÉTODO saveRequest
cambiar insert.setString(1, fechaHora);
por     insert.setTimestamp(1, Timestamp.valueOf(fechaHora)); //–>jocka

Debido a que se utiliza la clase Timestamp se debe importar la libreria
import java.sql.Timestamp;

En Tools

En el MÉTODO getDate cambiar

 


Hasta aquí todo lo que me ha pasado José. Desde aquí le doy las gracias por compartir las modificaciones y espero que os hayan sido de ayuda.


10 Comentarios

  1. gust

    Buenas, lei el tema y bastante interesante, soy nuevo en esto y quiersa saber si los tutos lo tenes desde cero ? es decir se puede acceder algun tutorial tuyo q va desde el principio?

  2. Juan Manuel

    que tal , buenas tardes , disculpa al hacerel paso 4 –En PersistenceBD

    En el MÉTODO init
    cambiar nameBD = historiales;
    por nameBD = “public”; //–>jocka

    me marca demaciados errores en el archivo , que mas debo cambiar o importar ??

    • Hola: No he entendido muy bien que es lo que te pasa. Si me puedes explicar mejor lo que has hecho y el problema trataré de ayudarte

  3. Qué tal, primero que nada, te agradezco por todo lo que has invertido ene ste proyecto, y por tu generosa aportación del mismo, a la comunidad. Y bueno, tengo una duda con respecto a esta implementación, ya que supuestamente como yo lo veo, corrígeme si estoy equivocado, haciendo los cambios en los xml de context y web, para que queden así, y cambiando los parámetros de mysql, tendría que funcionar el pool de conexión sin ningun problema, no es cierto? o habría que hacer alguna otra cosa para que el cambio se viera reflejado?

    • Hola:
      Respecto al Pool de Conexiones lo puedes configurar con los parámetros que quieres. Posteriormente tendrás que configurar el descriptor de despliegue de acuerdo a la configuración y también el descriptor de despliegue propio de glassfish también. En el mismo post sobre la tienda online (no en este de la actualización) tienes extensa documentación y un vídeo sobre la puesta en marcha de la aplicación.
      http://jdiezfoto.es/informatica/ejemplo-java-ee-una-tienda-online/

      Si sigues teniendo dudas no dudes en volver a preguntar.

      Un saludo!

  4. y como lo ejecuto ahora que trabaja con apache y postgress sql

    • Hola Eddy: En esta entrada como bien dije me limité a copiar las instrucciones que me dio un lector para que pudiera ser visto por todo el mundo, pero yo no he usado nunca Tomcat así que no sabría decirlo con detalle, pero seguro que puedes arrancar el Tomcat desde NetBeans.

      No obstante si no consigues desplegarlo en GlassFish con las instrucciones que te estoy dando no creo que sea esta la opción que debas elegir.

      Saludos!

  5. Leo

    Hola a todos,

    Yo estaba intentando hacer funcionar la aplicación con Tomcat en lugar de GlassFish, pero con MySql.

    No he conseguido desplegar el proyecto en Tomcat. Veo que los cambios que mencionais son más bien para cambiar la Base de Datos, podéis por favor detallar qué debería hacerse para cambiar a Tomcat?

    Muchas garcias una vez más.

    Uns saludo.

    Leo.

    • Ya está solucionado lo del duplicado 😉 Respecto a hacer funcionar la aplicación con Tomcat también me indicó José lo que he puesto ahí de cambiar el servidor de aplicaciones en NetBeans y indica como rellenar el archivo para el recurso.

      Podrías decir que es lo que has hecho tú y el error que te da para que podamos orientarte mejor.

      Un saludo.

Trackbacks/Pingbacks

  1. Bitacoras.com - Información Bitacoras.com... Valora en Bitacoras.com: Recientemente se puso en contacto conmigo un lector preguntándome si era posible usar la…

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

A %d blogueros les gusta esto: