Spring Boot stoppt nach dem Start

8

Fehler sind:

%Vor%

Ich versuche zu starten, aber nach diesen Ausgaben schaltet es sich ab. Ich habe Spring Initializr verwendet. Ich möchte nur eine kleine REST-API erstellen.

Das ist mein pom.xml :

%Vor%

das ist application.properteis :

%Vor%

InternetMovieDatabaseApplication klasse:

%Vor%

ServletInitializer klasse:

%Vor%

Dies sind die Fehler, wenn ich ServletInitializer löschen:

%Vor%     
Ali Dehghani 25.03.2016, 21:46
quelle

3 Antworten

11

Ich sehe nichts Grelles falsch mit dem, was Sie haben. Ich habe eine App, die ich gleichzeitig als Krug und Krieg in verschiedenen Umgebungen einsetze (sie unterscheiden sich nur durch die Verpackung); Ich habe eine ServletInitializer Entsprechung zu Ihrer und es funktioniert ohne Problem mit einem primären Unterschied.

Ich verwende eine maven run-Konfiguration mit spring-boot:run als "Befehlszeilen" -Wert. Damit kann ich nicht mehr tun, als den Pom zu ändern, um Jar oder Krieg zu reflektieren, zu rennen und zu gehen. Ich hatte Probleme, wenn ich hin und her wechsle und eine Konfiguration verwende, die main in der App-Klasse aufruft. Zum Beispiel habe ich nur zum Spaß eine Instanz der App mit jar packaging und main ausgeführt. Würde nicht einmal starten. Dies ist nur, nachdem es jar verpackt und gestartet wurde mit der Maven-Konfiguration, die ich oben erwähnt.

Ich würde empfehlen, mit der Erstellung dieser Maven-Run-Konfiguration zu beginnen und zu sehen, was die Ergebnisse sind. Hier ist der Weg, es in Intellij zu tun, so dass Sie die Befehlszeilenschnittstelle nicht verwenden müssen.

  1. Wählen Sie "Konfigurationen bearbeiten ..." aus dem Dropdown-Menü neben der Wiedergabeschaltfläche.
  2. Drücke den grünen + in der oberen linken Ecke.
  3. Wählen Sie, um eine Maven-Konfiguration zu erstellen.
  4. Nennen Sie es.
  5. Fügen Sie spring-boot:run dem Eintrag "Befehlszeile" hinzu.
  6. Optional können Sie "Freigeben" d oder "Nur einzelne Instanz" festlegen.

Ich bin kein Eclipse / sts-Benutzer, aber ich bin mir sicher, dass es einen ähnlichen Weg gibt.

    
ChiefTwoPencils 25.03.2016, 23:11
quelle
6

Offensichtlich werden Sie Ihre Anwendung als war packen, das ist in Ordnung, aber das Problem ist, dass Sie Ihre Anwendung über die Methode main in der Klasse InternetMovieDatabaseApplication ausführen. Stattdessen sollten Sie Ihre Anwendung entweder auf einem eigenständigen Servlet-Container wie Tomcat oder Jetty bereitstellen oder die Anwendung mit dem Befehl mvn spring-boot:run ausführen .

Wenn das Packen Ihrer Anwendung als war archive keine strenge Anforderung ist, empfehle ich make jar, not war . Um dies zu tun, entferne zuerst packaging in deinem pom.xml :

%Vor%

Entfernen Sie dann die spring-boot-starter-tomcat Abhängigkeit:

%Vor%

Und schließlich entfernen Sie die Klasse ServletInitializer und führen Sie die Methode main in Ihrer Klasse InternetMovieDatabaseApplication aus.

    
Ali Dehghani 25.03.2016 22:05
quelle
0

Ich glaube nicht, dass du deine ServletInitializer

brauchst

Ihr InternetMovieDatabaseApplication mit der Annotation @SpringBootApplication sollte ausreichen.

    
maximede 25.03.2016 22:03
quelle

Tags und Links