In diesem Artikel werde ich Ihnen erklären, wie Sie ein Projekt auf JBoss mit JPA konfigurieren. Ich werde nicht auf die Details von JPA, Hibernate, EJB eingehen. Dies ist ein separates Thema. Ich zeige Ihnen nur die Struktur des Projekts, wie Sie die Datenquelle in WildFly konfigurieren und alles in IntelliJ IDEA ausführen. Ich denke, dieses Framework wird für Anfänger nützlich sein, die mit JavaEE und JPA arbeiten.
Installieren Sie WildFly10
Wir besuchen die
offizielle WildFly-Website und laden die Version 10.1.0.Final herunter. (Vielleicht funktioniert ein anderer, aber in diesem Projekt habe ich ihn verwendet).
Entpacken Sie das Archiv in ein beliebiges Verzeichnis auf Ihrem Computer.
Erstellen Sie als Nächstes einen neuen Benutzer. Führen Sie dazu bin / add-user.bat aus. Dort ist alles ganz einfach. Befolgen Sie die Anweisungen und merken Sie sich den eingegebenen Benutzernamen und das eingegebene Passwort.
Datenquelle erstellen
Der nächste Schritt besteht darin, eine Datenquelle auf dem Server zu erstellen. Am einfachsten wäre es, die von WildFly bereitgestellte Administratorkonsole zu verwenden.
Um es einzugeben, müssen Sie zuerst den Server /bin/standalone.bat starten und zur Adresse
127.0.0.1 : 9990 gehen. Verwenden Sie den Benutzernamen und das Passwort, die Sie gerade erstellt haben.
Gehen Sie zu Bereitstellungen-> Hinzufügen-> Neuen Bereitstellungsabschnitt hochladen.
Laden Sie jetzt den jdbc-Treiber von der offiziellen postgresql-Website herunter. Ich habe postgresql-42.2.4.jar heruntergeladen. Wir fügen es Bereitstellungen hinzu. Jeder Name kann angegeben werden.
Weitere Konfiguration-> Subsysteme-> Datenquellen-> Nicht-XA-> Hinzufügen.
Wählen Sie Postgresql Datasource und unseren heruntergeladenen Treiber. Wir legen die URL unserer Datenbank, den Benutzernamen und das Passwort fest. (Nicht zu verwechseln mit dem Benutzernamen und dem Passwort vom Server). Wenn alles richtig gemacht wurde, sollte Ihre neue Datenquelle in der Liste erscheinen. Auf der Registerkarte Ansicht können Sie die Verbindung zur Datenbank überprüfen, wenn Sie auf Verbindung testen klicken.
Erstellen eines Projekts in IntelliJ IDEA
Hier ist alles Standard. Ich denke, es sind keine zusätzlichen Kommentare erforderlich. Erstellen Sie ein Maven-Projekt. Wir haben Krieg in die Verpackung gesteckt. Und fügen Sie die erforderlichen Abhängigkeiten hinzu.
Eigentlich ist hier meine 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>
Projektstruktur

Beachten Sie, dass sich persitence.xml in WEB-INF-> classes-> META-INF befindet.
Und hier ist persistence.xml selbst
<?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>
Verwenden Sie als jta-Datenquelle den jndi-Namen, der beim Erstellen der Datenquelle angegeben wurde.
Wenn Sie es vergessen haben, können Sie sich 127.0.0.1:9990 im Abschnitt Konfiguration-> Subsysteme-> Datenquellen-> Unsere Datenquelle-> Ansicht-> Attribute-> JNDI-Zeile ansehen.Schauen wir uns jetzt unsere Klassen an.
1. Die einfachste Entitätsklasse.
Details malen nicht. Dies ist ein weiteres Thema.
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. EJB-Klasse
Annotation @PersistenceContext fügt unsere Persistenz-Einheit ein und erstellt darauf basierend einen EntityManager.
Die Annotation @Stateless gibt an, dass es sich um ejb handelt.
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. Das einfachste Servlet
Abstract @EJB injizieren JavaBean.
In der doGet-Methode wird ein Benutzer mit dem Namen "Ser" erstellt und die saveUser-Methode von ejb aufgerufen.
Wenn keine Userentity-Tabelle vorhanden war, erstellt der Ruhezustand die Tabelle selbst und fügt unseren Benutzer dort ein.
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"); } }
Projektstart
Um jboss in IDEA zu konfigurieren, gehen Sie zu Run-> EditConfiguration, klicken Sie oben links auf "+" und wählen Sie jboss-local aus.

Wählen Sie als ApplicationServer den Ordner mit unserem installierten WildFly aus. Als Artefakt habe ich ExternalArtifact (kompiliert von maven hiberProject.war) ausgewählt, den Standard-Build entfernt und die Standard-Maven-Aufgaben hinzugefügt (Clean Package Install).
Jetzt drücken wir Start und warten, bis der Server geladen ist. Wechseln Sie als Nächstes zur localhost-Seite: 8080 / Projektname / Test.
Beim Laden der Seite wird die doGet-Methode ausgelöst und unser Benutzer mit dem Namen "Ser" in die Datenbank geschrieben.
Danke an alle. Ich hoffe dieser Artikel hat jemandem geholfen.
Hier ist ein
Link zu GitHub mit diesem Projekt.