Crie um projeto simples do maven usando Java EE + WildFly10 + JPA (Hibernate) + Postgresql + EJB + IntelliJ IDEA

Neste artigo, mostrarei como configurar um projeto no JBoss usando o JPA. Não vou entrar em detalhes do JPA, Hibernate, EJB, este é um tópico separado. Vou apenas mostrar a estrutura do projeto, como configurar a fonte de dados no WildFly e executar tudo no IntelliJ IDEA. Acho que essa estrutura será útil para iniciantes que trabalham com JavaEE e JPA.

Instale o WildFly10


Vamos ao site oficial do WildFly e baixamos a versão 10.1.0.Final. (talvez outro funcione, mas neste projeto eu o usei).

Descompacte o arquivo em qualquer diretório do seu computador.
Em seguida, crie um novo usuário. Para fazer isso, execute bin / add-user.bat. Tudo é bem simples lá. Siga as instruções e lembre-se do nome de usuário e senha digitados.

Criar fonte de dados


O próximo passo é criar uma fonte de dados no servidor. A maneira mais fácil seria usar o console de administração fornecido pelo WildFly.

Para inseri-lo, primeiro você precisa iniciar o servidor /bin/standalone.bat e acessar o endereço 127.0.0.1 : 9990. Use o nome de usuário e a senha que você acabou de criar.

Vá para a seção Implementações-> Adicionar-> Carregar uma nova implantação.

Agora baixe o driver jdbc no site oficial do postgresql. Eu baixei o postgresql-42.2.4.jar. Nós o adicionamos às implantações. Qualquer nome pode ser dado.

Outras Configurações-> Subsistemas-> Fontes de Dados-> Não-XA-> Incluir.

Escolha a fonte de dados Postgresql e nosso driver baixado. Definimos o URL do nosso banco de dados, nome de usuário e senha. (não confunda com o nome de usuário e a senha do servidor). Se tudo foi feito corretamente, sua nova fonte de dados deve aparecer na lista. Na guia Exibir, você pode verificar a conexão com o banco de dados se clicar em Testar Conexão.

Criando um projeto no IntelliJ IDEA


Tudo é padrão aqui. Eu acho que nenhum comentário extra é necessário. Crie um projeto maven. Colocamos a guerra nas embalagens. E adicione as dependências necessárias.

Na verdade, aqui está o meu 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> 

Estrutura do projeto




Observe que persitence.xml está em WEB-INF-> classes-> META-INF.

E aqui está o próprio persistence.xml

 <?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 foi especificado ao criar a fonte de dados.
Se você esquecer, poderá ver 127.0.0.1:9990 na seção Configuração-> Subsistemas-> Fontes de Dados-> Nossa fonte de dados-> Exibir-> Atributos-> linha JNDI.

Agora vamos olhar para as nossas aulas.

1. A classe de entidade mais simples.

Os detalhes não pintam. Este é outro tópico.

 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. Classe EJB

A anotação @PersistenceContext injeta nossa unidade de persistência e cria um EntityManager com base nela.

A anotação @Stateless indica que é 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. O Servlet mais simples

Resumo @EJB injectite JavaBean.

No método doGet, um usuário chamado “Ser” é criado e o método saveUser do ejb é chamado.
Se não havia uma tabela de identidade do usuário, o hibernate criará a própria tabela e inserirá nosso usuário lá.

 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"); } } 

Lançamento do projeto


Para configurar o jboss no IDEA, vá em Executar-> Editar Configuração, clique em "+" no canto superior esquerdo e selecione jboss-local.



Como ApplicationServer, selecione a pasta com o nosso WildFly instalado. Como artefato, selecionei ExternalArtifact (compilado por maven hiberProject.war), removi o Build padrão e adicionei as tarefas padrão do maven (instalação limpa do pacote).

Agora pressionamos start e esperamos quando o servidor é carregado. Em seguida, vá para a página localhost: 8080 / nome do projeto / teste.

Quando a página é carregada, o método doGet é acionado e nosso usuário com o nome “Ser” é gravado no banco de dados.

Obrigado a todos. Espero que este artigo tenha ajudado alguém.
Aqui está um link para o GitHub com este projeto.

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


All Articles