


So packen Sie SpringBoot in ein Kriegspaket, um es unter Tomcat oder Wildfly auszuführen
Die Standardverpackungsmethode von Springboot ist das JAR-Paket. Der Vorteil des JAR-Pakets besteht darin, dass die Konfiguration nicht geändert werden muss und Tomcat in ein JAR-Paket gepackt werden kann, um es auszuführen Tests. Wenn man jedoch bedenkt, dass der Front-End-Code nur in ein Kriegspaket gepackt werden kann, reicht es aus, den Back-End-Code in ein Kriegspaket zu packen und ihn zusammen mit dem Front-End-Code in Webapps im Tomcat-Container auszuführen.
SpringBoot-Verpackungsform
Standardmäßig wird das erstellte SpringBoot-Projekt in Form eines JAR-Pakets verpackt. Gleichzeitig ist ein Tomcat-Container eingebaut.
Was sollten Sie also tun, wenn Sie Springboot in ein Kriegspaket packen und es in einem Container wie Wildfly bereitstellen möchten?
Im Folgenden werden die einzelnen Schritte ab der Erstellung eines Projekts erläutert.
Ein Projekt erstellen
Es gibt keine Schwierigkeiten, ein Projekt zu erstellen. Verwenden Sie einfach das Ideentool, um ein einfaches Maven-Projekt zu erstellen, und Sie möchten es einfach in ein Kriegspaket umwandeln modifizieren Sie es.
Ändern Sie die pom.xml-Konfiguration
Ändern Sie nach dem Erstellen des Projekts die pom.xml-Datei und fügen Sie das übergeordnete Tag hinzu.
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.5.RELEASE</version> <relativePath/> </parent>
Wenn es ursprünglich ein Springboot-Projekt war, ist es bereits enthalten und muss nicht geändert werden.
Setzen Sie die Verpackungsmethode in pom.xml auf war.
<packaging>war</packaging>
Fügen Sie die Abhängigkeitskonfiguration wie folgt hinzu oder ändern Sie sie:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
Unter anderem muss die Tomcat-Abhängigkeit in Spring-Boot-Starter-Web ausgeschlossen werden. Fügen Sie gleichzeitig die Abhängigkeit von Servlet-API hinzu. Beachten Sie, dass die hier hinzugefügte Abhängigkeit Servlet2.5 ist.
Verwenden Sie die folgenden Plug-Ins im Build für die Verpackung.
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build>
Starten Sie die Hauptmethode
Wenn bereits eine Hauptmethode zum Starten vorhanden ist, lassen Sie die Hauptmethode SpringBootServletInitializer erben und implementieren Sie ihre Methode. Wenn es sich um ein neu erstelltes Projekt handelt, erstellen Sie SpringBootApp (Startklasse) direkt im Verzeichnis der obersten Ebene und starten Sie dann diam wie folgt.
@SpringBootApplication public class SpringBootApp extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(SpringBootApp.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(SpringBootApp.class); } }
Packaging
Führen Sie einfach die Paketverpackung über den Maven-Befehl aus, und das Kriegspaket kann im Zielverzeichnis generiert werden.
Was die Bereitstellung von Tomcat und Wildfly betrifft, können Sie das Kriegspaket im entsprechenden Verzeichnis ablegen und den Dienst starten.
Ausnahmen
Wenn während des Startvorgangs eine Ausnahme ähnlich der folgenden auftritt (was darauf hindeutet, dass web.xml fehlt):
Fehler beim Zusammenstellen von WAR: webxml-Attribut ist erforderlich (oder bereits vorhandenes WEB-INF/web.xml, wenn (wird im Aktualisierungsmodus ausgeführt)
Achten Sie darauf, das POM-Datei-Paket-Plug-In zu überprüfen und festzustellen, ob Tomcat-Probleme behoben wurden, und prüfen Sie, ob das oben genannte Paket-Plug-In korrekt ist.
Der Grund für das Problem ist: Auf das Abhängigkeitspaket spring-boot-starter-web wird im Springboot-Projekt verwiesen. Der in diesem Paket referenzierte Spring-Boot-Starter-Tomcat enthält den in Tomcat eingebetteten Servlet-Container und seine verschiedenen Versionen implementieren unterschiedliche Servlet-Versionsspezifikationen.
Servlet/JSP Version 2.5/2.1 unterstützt Tomcat Version 6.0.x und die minimale Java-Version ist 1.5. Servlet/JSP Version 3.0/2.2 unterstützt Tomcat Version 7.0.x und die minimale Java-Version ist 1.6.
Da oben Servlet2.5 verwendet wird, tritt die obige Ausnahme auf, wenn keine web.xml-Datei vorhanden ist.
Lösung 1: Wenn die Servlet-Version kleiner als 3 ist, verwenden Sie zum Erstellen die Datei /src/main/webapp/WEB-INF/web.xml.
Lösung 2: Fügen Sie das Maven-War-Plugin-Plugin unter dem Build von pom.xml hinzu. Und setzen Sie failOnMissingWebXml auf false.
Das obige ist der detaillierte Inhalt vonSo packen Sie SpringBoot in ein Kriegspaket, um es unter Tomcat oder Wildfly auszuführen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Um ein JAR-Projekt auf Tomcat bereitzustellen, führen Sie die folgenden Schritte aus: Laden Sie Tomcat herunter und entpacken Sie es. Konfigurieren Sie die Datei server.xml, legen Sie den Port und den Projektbereitstellungspfad fest. Kopiert die JAR-Datei in den angegebenen Bereitstellungspfad. Starten Sie Tomcat. Greifen Sie über die bereitgestellte URL auf das bereitgestellte Projekt zu.

Um dem Tomcat-Server den Zugriff auf das externe Netzwerk zu ermöglichen, müssen Sie Folgendes tun: Ändern Sie die Tomcat-Konfigurationsdatei, um externe Verbindungen zuzulassen. Fügen Sie eine Firewallregel hinzu, um den Zugriff auf den Tomcat-Server-Port zu ermöglichen. Erstellen Sie einen DNS-Eintrag, der den Domänennamen auf die öffentliche IP des Tomcat-Servers verweist. Optional: Verwenden Sie einen Reverse-Proxy, um Sicherheit und Leistung zu verbessern. Optional: Richten Sie HTTPS für mehr Sicherheit ein.

Tomcat-Installationsverzeichnis: Standardpfad: Windows: C:\Programme\Apache Software Foundation\Tomcat 9.0macOS:/Library/Tomcat/Tomcat 9.0Linux:/opt/tomcat/tomcat9 Benutzerdefinierter Pfad: Sie können ihn während der Installation angeben. Suchen Sie das Installationsverzeichnis: Verwenden Sie den Befehl „whereis“ oder „locate“.

Um mehrere Projekte über Tomcat bereitzustellen, müssen Sie für jedes Projekt ein Webapp-Verzeichnis erstellen und dann: Automatische Bereitstellung: Platzieren Sie das Webapp-Verzeichnis im Webapps-Verzeichnis von Tomcat. Manuelle Bereitstellung: Stellen Sie das Projekt manuell in der Manager-Anwendung von Tomcat bereit. Sobald das Projekt bereitgestellt ist, kann über seinen Bereitstellungsnamen darauf zugegriffen werden, zum Beispiel: http://localhost:8080/project1.

So überprüfen Sie die Anzahl gleichzeitiger Tomcat-Verbindungen: Besuchen Sie die Tomcat Manager-Seite (http://localhost:8080/manager/html) und geben Sie Ihren Benutzernamen und Ihr Passwort ein. Klicken Sie in der linken Navigationsleiste auf Status->Sitzungen, um oben auf der Seite die Anzahl der gleichzeitigen Verbindungen anzuzeigen.

Das Stammverzeichnis der Tomcat-Website befindet sich im Unterverzeichnis webapps von Tomcat und wird zum Speichern von Webanwendungsdateien und statischen Ressourcen verwendet. Das Verzeichnis WEB-INF kann durch Suchen nach dem docBase-Attribut in der Tomcat-Konfigurationsdatei gefunden werden.

Die Tomcat-Portnummer kann angezeigt werden, indem das Portattribut des <Connector>-Elements in der Datei server.xml überprüft wird. Besuchen Sie die Tomcat-Verwaltungsoberfläche (http://localhost:8080/manager/html) und sehen Sie sich die Registerkarte „Status“ an. Führen Sie „catalina.sh version“ über die Befehlszeile aus und sehen Sie sich die Zeile „Port:“ an.

Das Ausführen von Projekten mit unterschiedlichen Portnummern auf dem Tomcat-Server erfordert die folgenden Schritte: Ändern Sie die Datei server.xml und fügen Sie ein Connector-Element hinzu, um die Portnummer zu definieren. Fügen Sie ein Kontextelement hinzu, um die mit der Portnummer verknüpfte Anwendung zu definieren. Erstellen Sie eine WAR-Datei und stellen Sie sie im entsprechenden Verzeichnis bereit (webapps oder webapps/ROOT). Starten Sie Tomcat neu, um die Änderungen zu übernehmen.
