Cree un proyecto maven simple utilizando Java EE + WildFly10 + JPA (Hibernate) + Postgresql + EJB + IntelliJ IDEA

En este artículo te diré cómo configurar un proyecto en JBoss usando JPA. No voy a entrar en los detalles de JPA, Hibernate, EJB, este es un tema separado. Simplemente le mostraré la estructura del proyecto, cómo configurar el origen de datos en WildFly y ejecutarlo todo en IntelliJ IDEA. Este marco, creo, será útil para los principiantes que trabajan con JavaEE y JPA.

Instalar WildFly10


Vamos al sitio web oficial de WildFly y descargamos la versión 10.1.0.Final. (Tal vez otro funcionará, pero en este proyecto lo usé).

Descomprima el archivo en cualquier directorio de su computadora.
A continuación, cree un nuevo usuario. Para hacer esto, ejecute bin / add-user.bat. Todo es bastante simple allí. Siga las instrucciones y recuerde el nombre de usuario y la contraseña ingresados.

Crear fuente de datos


El siguiente paso es crear una fuente de datos en el servidor. La forma más fácil sería utilizar la consola de administración proporcionada por WildFly.

Para ingresarlo, primero debe iniciar el servidor /bin/standalone.bat e ir a la dirección 127.0.0.1 : 9990. Use el nombre de usuario y la contraseña que acaba de crear.

Vaya a la sección Implementaciones-> Agregar-> Cargar una nueva implementación.

Ahora descargue el controlador jdbc del sitio web oficial de postgresql. Descargué postgresql-42.2.4.jar. Lo agregamos a las implementaciones. Cualquier nombre puede ser dado.

Configuración adicional-> Subsistemas-> Fuentes de datos-> No XA-> Agregar.

Elija Postgresql Datasource y nuestro controlador descargado. Establecemos la URL de nuestra base de datos, nombre de usuario y contraseña. (no debe confundirse con el nombre de usuario y la contraseña del servidor). Si todo se hizo correctamente, su nueva fuente de datos debería aparecer en la lista. En la pestaña Ver, puede verificar la conexión a la base de datos si hace clic en Probar conexión.

Crear un proyecto en IntelliJ IDEA


Todo es estándar aquí. Creo que no se requieren comentarios adicionales. Crea un proyecto maven. Ponemos la guerra en el embalaje. Y agregue las dependencias necesarias.

En realidad aquí está mi pom.xml

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>yst</groupId> <artifactId>hiberProject</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.2.12.Final</version> <scope>provided</scope> </dependency> </dependencies> <build> <finalName>hiberProject</finalName> </build> </project> 

Estructura del proyecto




Tenga en cuenta que persitence.xml está en WEB-INF-> classes-> META-INF.

Y aquí está persistence.xml en sí

 <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="myUnit" > <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> <jta-data-source>java:/PostgresDS</jta-data-source> <class>UserEntity</class> <class>JavaBean</class> <properties> <property name="hibernate.show_sql" value="true" /> <property name="hibernate.format_sql" value="true" /> <property name="hibernate.hbm2ddl.auto" value="update" /> </properties> </persistence-unit> </persistence> 

Como jta-data-source, use jndi-name, que se especificó al crear la fuente de datos.
Si lo olvida, puede mirar 127.0.0.1:9990 en la sección Configuración-> Subsistemas-> Fuentes de datos-> Nuestra fuente de datos-> Ver-> Atributos-> Línea JNDI.

Ahora echemos un vistazo a nuestras clases.

1. La clase de entidad más simple.

Los detalles no pintan. Este es otro tema.

 import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class UserEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 

2. clase EJB

Anotación @PersistenceContext inyecta nuestra unidad de persistencia y crea un EntityManager basado en ella.

La anotación @Stateless indica que es ejb.

 import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; @Stateless public class JavaBean { @PersistenceContext(unitName = "myUnit") EntityManager entityManager; public void saveUser(UserEntity user){ entityManager.persist(user); } } 

3. El servlet más simple

Resumen @EJB injectite JavaBean.

En el método doGet, se crea un usuario llamado "Ser" y se llama al método saveUser de ejb.
Si no había una tabla de utilidad, hibernate creará la tabla misma e insertará a nuestro usuario allí.

 import javax.ejb.EJB; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/test") public class App extends HttpServlet{ @EJB JavaBean javaBean; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { UserEntity user=new UserEntity(); user.setName("Ser"); javaBean.saveUser(user); resp.getWriter().println("Hello from servlet"); } } 

Lanzamiento del proyecto


Para configurar jboss en IDEA, vaya a Ejecutar-> Editar configuración, haga clic en "+" en la esquina superior izquierda y seleccione jboss-local.



Como ApplicationServer, seleccione la carpeta con nuestro WildFly instalado. Como artefacto, seleccioné ExternalArtifact (compilado por maven hiberProject.war), eliminé el Build estándar y agregué las tareas estándar de maven (instalación limpia del paquete).

Ahora presionamos inicio y esperamos cuando se carga el servidor. A continuación, vaya a la página localhost: 8080 / nombre del proyecto / prueba.

Cuando se carga la página, se activa el método doGet y nuestro usuario con el nombre "Ser" se escribe en la base de datos.

Gracias a todos. Espero que este artículo haya ayudado a alguien.
Aquí hay un enlace a GitHub con este proyecto.

Source: https://habr.com/ru/post/es420827/


All Articles