Resumen:
En este blog aprenderemos a crear un proyecto básico con JPA web usando hibernate como implementación de jpa y maven, que es una herramienta de software para la gestión y construcción de proyectos.
Detalles:
Comenzamos explicando algunos conceptos importantes para entender este proyecto.
¿Qué es JPA?
Java Persistence API es una especificación de persistencia para la plataforma JAVA que aplica el Mapeo Relacional Objeto (ORM: Object-Relational Mapping) permitiendo interactuar con bases de datos relacionales sin perder las ventajas de la orientación a objetos. Esto permite construir aplicaciones completamente orientadas a objetos. Algunas de las implementaciones mas conocidas de JPA son: Hibernate, TopLink, OpenJPA, EclipseLink.
¿Qué es Hibernate?
Hibernate es una herramienta de mapeo objeto-relacional (ORM) para Java, que facilita el mapeo de atributos en una base de datos tradicional, y el modelo de objetos de un aplicación mediante archivos declarativos o anotaciones en los beans de las entidades que permiten establecer estas relaciones.
¿Qué es Maven?
Normalmente cuando trabajamos con Java/JavaEE el uso de librerías es algo común como en cualquier otro lenguaje de programación. Sin embargo, una librería puede depender de otras librerías para funcionar de forma correcta. Por ende, su gestión se puede volver tedioso a la hora de buscar las librerías y ver que versión exacta debemos de elegir. Así pues necesitamos más información para gestionarlo todo de forma correcta y para ellos existe MAVEN, que es una herramienta que nos va a permitir tener una gestión correcta de nuestra librerías, proyectos y dependencias. Dentro de un proyecto Maven el archivo pom.xml (Proyect Object Model) es el de mayor importancia ya que contiene toda la información del artefacto que usará nuestro proyecto. Un Artefacto puede verse como una librería con esteroides (aunque agrupa mas conceptos). Contiene las clases propias de la librería pero ademas incluye toda la información necesaria para su correcta gestión (grupo, versión, dependencias etc).
PASOS
1. Crear un Maven Project
Clic en File/New/Maven Project.
Seleccionamos el arquetipo «maven-archetypes-webapp» de «org.apache.maven.archetypes».
Group Id: identifica de forma exclusiva su proyecto en todos los proyectos. Una ID de grupo debe seguir las reglas de nombre de paquete de Java . Esto significa que comienza con un nombre de dominio invertido que controlas. Por ejemplo, org.apache.maven, org.apache.commons.
Artifact Id: es el nombre del jar sin versión. Si lo creó, puede elegir el nombre que desee con letras minúsculas y sin símbolos extraños. Si se trata de un jar de un tercero, debe tomar el nombre del jar tal como está distribuido.
Versión: si distribuye, entonces usted puede elegir cualquier versión típica con números y puntos (1.0, 1.1, 1.0.1, …). No use fechas, ya que generalmente están asociadas con compilaciones SNAPSHOT (todas las noches). Si se trata de un artefacto de un tercero, debe usar su número de versión, sea lo que sea, y por extraño que parezca. Por ejemplo, 2.0, 2.0.1, 1.3.1.
Clic en «Finish» y tendremos la siguiente estructura
El error que no muestra va a desaparecer cuando agreguemos las dependencias.
2. Agregar las dependencias para este proyecto
Abrimos el archivo «pom.xml» y agregamos las siguientes dependencias:
javax.servlet-api: para trabajar con serlvets (hace que desaparezca el error anterior).
mysql-connector-java: driver de conexión mysql.
hibernate-core: para trabajar con hibernate.
No olvidemos que tenemos que cambiar la versión de Java de 1.7 a 1.8.
Guardamos los cambios y podemos observar que dentro del directorio Maven Dependencies se han descargados todas las librerías. Si no les descarga las librerías de manera automática, debemos hacer clic derecho al proyecto y seleccionar la opción Maven/Update Project…
Pero podemos notar que aún nos marca algunos errores y eso es debido a que todavia falta algunas configuraciones.
3. Actualizar la versión del Servlet
Actualmente nuestro proyecto se ha creado con la versión 2.1 de servlet y debemos cambiarlo a la versión 3.1. Para realizar ello, debemos ir a la pestaña Windows/Show View/Navigator.
En esta nueva perspectiva, seleccionamos nuestro proyecto y navegamos hasta la parte de settings, dentro de esta carpeta seleccionamos el archivo «org.eclipse.wst.common.project.facet.core,xml» y cambiamos la versión de la etiqueta jst.web de 2.3 a 3.1.
Debe quedar de la siguiente manera:
<installed facet=»jst.web» version=»3.1″/>
Guaramos los cambios y ahora debemos de cambiar la versión del descriptor de despliegue web.xml que se encuentra alojado dentro de la carpeta src/webapp/WEB-INF.
Como se puede observar en la imagen, dicho archivo ha sido creado con la versión 2.3, debemos de cambiarlo a la versión 3.1.
Para ello vamos a reemplazar el código anterior por el siguiente:
version
=
"3.1"
>
<
display-name
>Archetype Created Web Application</
display-name
>
<
welcome-file-list
>
<
welcome-file
>faces/index.xhtml</
welcome-file
>
</
welcome-file-list
>
<
context-param
>
<
param-name
>javax.faces.PROJECT_STAGE</
param-name
>
<
param-value
>Development</
param-value
>
</
context-param
>
<
context-param
>
<
param-name
>javax.faces.DEFAULT_SUFFIX</
param-name
>
<
param-value
>.xhtml</
param-value
>
</
context-param
>
<
context-param
>
<
param-name
>javax.faces.FACELETS_SKIP_COMMENTS</
param-name
>
<
param-value
>true</
param-value
>
</
context-param
>
<
servlet
>
<
servlet-name
>Faces Servlet</
servlet-name
>
<
servlet-class
>javax.faces.webapp.FacesServlet</
servlet-class
>
<
load-on-startup
>1</
load-on-startup
>
</
servlet
>
<
servlet-mapping
>
<
servlet-name
>Faces Servlet</
servlet-name
>
<
url-pattern
>/faces/*</
url-pattern
>
</
servlet-mapping
>
<
servlet-mapping
>
<
servlet-name
>Faces Servlet</
servlet-name
>
<
url-pattern
>*.jsf</
url-pattern
>
</
servlet-mapping
>
<
session-config
>
<
session-timeout
>30</
session-timeout
>
</
session-config
>
</
web-app
>
¿Para que sirve agregar /faces/ en el web.xml?
Cada aplicación JSF incluye un servlet javax.faces.webapp.FacesServlet para gestionar el proceso de todo el ciclo de vida de una petición dirigida a dicha aplicación. Esto significa que una aplicación JSF se parece a cualquier otra aplicación servlet/JSP: tiene páginas JSP, etiquetas personalizadas que proporcionan los componentes de la interfaz gráfica, recursos estáticos, JavaBeans para almacenar
los datos introducidos por el usuario, un descriptor de despliegue, etc. Para que la petición sea dirigida al servlet FacesServlet, tenemos que describir este en las etiquetas servlet y servlet-mapping del fichero de configuración web. xml.
Volvemos a la pestaña del Explorador de Proyecto, hacemos clic derecho a nuestro proyecto y seleccionamos la opción Maven/Update Project…, y desaparecerán los errores.
4. Crear página xhtml
Eliminamos el archivo
index.jsp que esta dentro de
src/main/webapp y en esa misma ruta creamos el archivo
index.xhtml.
Para crear este archivo con esa extensión, hacemos clic derecho en la carpeta webapp y seleccionamos la opción New/HTML File. En la venta que se muestra escribimos el nombre del archivo y damos clic en siguiente.
En la siguiente ventana selecionaremos la plantilla que diga New HTML File (1.0 transitional) y damos clic en Finalizar.
5. Aparecer directorio ocultos de Java
Clic derecho al proyecto y seleccionamos la opción /Build Path/Configure Build Path...
En la venta que se abre marcamos la casilla Maven Dependencies y hacemos clic en Aplicar.
Y hasta aquí ya tenemos nuestro proyecto listo para probar hasta este punto. Clic derecho al proyecto y seleccionar la opción Run As/ Run on Server.
Por el momento lo dejamos hasta aqui y en unos dias procedemos con la base de datos.
espero les haya sido de mucha ayuda.
Saludos Devs. 🙂
0 comentarios