sábado, 19 de agosto de 2017

Deployar Petstore en Java EE 6 con JBoss AS 7 mas Netbeans 8.1

Sun llegó a crear una aplicación web llamada Java Petstore, esta aplicación fue diseñada para mostrar como la tecnología J2EE(Java Enterprise Edition 2) podía ser empleada para desarrollar una aplicación web eCommerce. Sí, el objetivo de Petstore es vender mascotas en linea.
La aplicación Petstore llegó a ser tan popular, pero en esos tiempos, la versión J2EE era muy compleja, muchos archivos de configuración, muchas interfaces por implementar y usaba muchos patrones de diseños que hoy están obsoletos.
En 2013 cuando quise aprender Java JEE 5 encontré una adaptación de la aplicación Petstore para Java EE 5, YAPS Petstore, desarrollado por un arquitecto Francés de nombre Antonio Goncalves, traté de estudiar el código de la aplicación pero habían tantas tecnologías involucradas y lo complejo que eran termino por decantarme.
Este año retomé mi curso de Java EE 6, y buscando libros me entero que Antonio Goncalves ha escrito varios libros entre ellos uno para Java EE 6, y como era de suponer, ha realizado una actualización de la aplicación Petstore, en donde podemos observar el uso de nuevos patrones y APIs. Las tecnologías incluidas en la aplicación YAPS Petstore son: CDI, EJB Lite, REST interface, Bean Validation.

El objetivo de esta aplicación es:
  • Usar Java EE 6 y sólo Java EE: Ningún framework externo o dependencia, incluso usa la API java.util.logging
  • Mantenerlo simple: Ningún algoritmo de negocio complejo, aun así usa la mayoría de las APIs de Java EE 6, el punto es llevar la tecnología Java EE 6 en una aplicación web eCommerce.
Prerrequisitos
Java EE 6 o Java EE 7
JBoss AS 7.1.1 Final
Netbeans 8.1

Si tienes dudas con la instalación y configuración de JBoss, te recomiendo revisar mi entrada anterior

http://marcosrobertos.blogspot.com/2017/08/instalar-jboss-as-7-en-windows.html

Obteniendo y configurando el proyecto

Lo primero que haremos es obtener el código fuente desde github, lo podemos clonar o descargar, yo preferí clonarlo.





Abrimos el IDE Netbeans y abrimos el proyecto


Agregamos el servidor JBoss AS 7 a los servidores de Netbeans





Configurando el Data Source con MySQL
Lo primero es crear la base de datos en MySQL, yo he creado la base de datos con el nombre agoncal_petstore



Luego debemos configurar nuestro datasource en el archivo standalone.xml de JBoss,  localizado en  $JBOSS_HOME\standalone\configuration

Para definir un DataSource agregar el siguiente fragmento de xml

                
   <datasource jndi-name="java:jboss/datasources/PetStoreDS" pool-name="PetStoreDS">
      <connection-url>jdbc:mysql://localhost:3306/agoncal_petstore</connection-url>
      <driver>mysql</driver>
            <security>
               <user-name>root</user-name>
               <password>XXXXXXXXX</password>
            </security>
   </datasource>




Configurando el archivo persistence.xml
La aplicación YAPS Petstore viene configurado para una base de datos Derby, modificaremos nuestra configuración que se encuentra en el archivo persistence.xml
Agregar la siguiente linea

<jta-data-source>java:jboss/datasources/PetStoreDS</jta-data-source>

Comentamos las lineas

<!--<jta-data-source>java:global/jdbc/applicationPetstoreDS</jta-data-source> -->

<!--<property name="hibernate.dialect" value="org.hibernate.dialect.DerbyTenSevenDialect"/>-->



Nota: Guarda los cambios

Por último, editar la clase org.agoncal.application.petstore.service.DBPopulator y comentar la definición del DataSource

//@DataSourceDefinition(
//        className = "org.apache.derby.jdbc.EmbeddedDataSource",
//        name = "java:global/jdbc/applicationPetstoreDS",
//        user = "app",
//        password = "app",
//        databaseName = "applicationPetstoreDB",
//        properties = {"connectionAttributes=;create=true"}
//)


Ahora sí, ejecutamos el proyecto (Run), nos pedirá elegir el servidor. 


No hay comentarios:

Publicar un comentario