Dans cet article, je vais vous expliquer comment configurer un projet sur JBoss à l'aide de JPA. Je n'entrerai pas dans les détails de JPA, Hibernate, EJB, c'est un sujet séparé. Montrez simplement la structure du projet, comment configurer la source de données sur WildFly et exécutez le tout dans IntelliJ IDEA. Ce cadre, je pense, sera utile pour les débutants travaillant avec JavaEE et JPA.
Installez WildFly10
Nous allons sur le
site officiel de WildFly et tĂ©lĂ©chargeons la version 10.1.0.Final. (peut-ĂȘtre qu'un autre fonctionnera, mais dans ce projet, je l'ai utilisĂ©).
Décompressez l'archive dans n'importe quel répertoire de votre ordinateur.
Ensuite, créez un nouvel utilisateur. Pour ce faire, exécutez bin / add-user.bat. Tout y est assez simple. Suivez les instructions et n'oubliez pas le nom d'utilisateur et le mot de passe saisis.
Créer une source de données
L'étape suivante consiste à créer une source de données sur le serveur. Le moyen le plus simple serait d'utiliser la console d'administration fournie par WildFly.
Pour l'entrer, vous devez d'abord démarrer le serveur /bin/standalone.bat et vous rendre à l'adresse
127.0.0.1 : 9990. Utilisez le nom d'utilisateur et le mot de passe que vous venez de créer.
Accédez à la section Déploiements-> Ajouter-> Télécharger un nouveau déploiement.
TĂ©lĂ©chargez maintenant le pilote jdbc sur le site officiel de postgresql. J'ai tĂ©lĂ©chargĂ© postgresql-42.2.4.jar. Nous l'ajoutons aux dĂ©ploiements. N'importe quel nom peut ĂȘtre donnĂ©.
Configuration supplémentaire-> Sous-systÚmes-> Sources de données-> Non-XA-> Ajouter.
Choisissez Postgresql Datasource et notre pilote téléchargé. Nous définissons l'url de notre base de données, nom d'utilisateur et mot de passe. (à ne pas confondre avec le nom d'utilisateur et le mot de passe du serveur). Si tout a été fait correctement, votre nouvelle source de données devrait apparaßtre dans la liste. Dans l'onglet Affichage, vous pouvez vérifier la connexion à la base de données si vous cliquez sur Tester la connexion.
Création d'un projet dans IntelliJ IDEA
Tout est standard ici. Je pense qu'aucun commentaire supplémentaire n'est requis. Créez un projet maven. Nous mettons la guerre dans les emballages. Et ajoutez les dépendances nécessaires.
En fait, voici mon 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>
Structure du projet

Notez que persitence.xml est dans WEB-INF-> classes-> META-INF.
Et voici persistence.xml lui-mĂȘme
<?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>
Comme jta-data-source, utilisez jndi-name, qui a été spécifié lors de la création de la source de données.
Si vous oubliez, vous pouvez consulter 127.0.0.1:9990 dans la section Configuration-> Sous-systÚmes-> Sources de données-> Notre source de données-> Affichage-> Attributs-> Ligne JNDI.Voyons maintenant nos classes.
1. La classe d'entité la plus simple.
Les détails ne peignent pas. Ceci est un autre sujet.
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
L'annotation @PersistenceContext injecte notre unité de persistance et crée un EntityManager sur cette base.
L'annotation @Stateless indique qu'il s'agit d'un 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. Le servlet le plus simple
Résumé @EJB injectite JavaBean.
Dans la méthode doGet, un utilisateur nommé «Ser» est créé et la méthode saveUser d'ejb est appelée.
S'il n'y avait pas de table userentity, hibernate crĂ©era la table elle-mĂȘme et y insĂ©rera notre utilisateur.
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"); } }
Lancement du projet
Pour configurer jboss dans IDEA, allez dans Run-> EditConfiguration, cliquez sur "+" dans le coin supérieur gauche et sélectionnez jboss-local.

En tant qu'ApplicationServer, sélectionnez le dossier avec notre WildFly installé. En tant qu'artefact, j'ai choisi ExternalArtifact (compilé par maven hiberProject.war), supprimé la construction standard et ajouté les tùches maven standard (installation de package propre).
Maintenant, nous appuyons sur start et nous attendons lorsque le serveur est chargé. Ensuite, accédez à la page localhost: 8080 / nom du projet / test.
Lorsque la page se charge, la méthode doGet est déclenchée et notre utilisateur portant le nom «Ser» est écrit dans la base de données.
Merci à tous. J'espÚre que cet article a aidé quelqu'un.
Voici un
lien vers GitHub avec ce projet.