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.