Ich schreibe gerade ein API-Backend mit Spring, das ich mit Spring Boot auf einem Produktionsserver bereitstellen möchte.
Wenn ich das Backend in Eclipse kompiliere in einen Krieg (spezifiziert in Maven) und Tomcat 7 benutze, läuft es ohne Probleme.
Wie ich jedoch auf dem Server bereitstellen möchte, verwende ich Spring Boot.
Anwendung.java
%Vor%pom.xml
%Vor%Wenn ich das gesamte Projekt auf meinen Linux-Server kopieren und das maven-Paket ausführen, wird der Code problemlos kompiliert. Wenn ich dann die generierte JAR-Datei mit java -jar [Name der Datei] ausführe, erhalte ich den folgenden Fehler:
%Vor%Ich denke, das Problem ist, weil ich nicht die richtigen Versionen von Spring / Spring Boot habe (vielleicht versucht es eine falsche Version von Tomcat zu verwenden, so dass die Methode nicht existiert?)
Update 2015-04-06: Ich habe versucht, den Vorschlag von kucing_terbang, Spring Boot v1.1.10 zu verwenden, aber jetzt bekomme ich den Fehler wie folgt:
%Vor%Update 2015-04-07: Ich habe es dann mit v1.1.12.RELEASE versucht, was ähnliche Fehler verursacht hat:
%Vor%Ich habe dann ein mvn clean und mvn Paket ausprobiert, was mir beim Kompilieren folgenden Fehler einbrachte:
%Vor%Wenn ich jedoch v1.2.3.RELEASE verwende, bekomme ich den Kompilierfehler nicht, und wenn ich dann zu v1.1.12.RELEASE wechseln und das mvn-Paket ohne eine Bereinigung ausführen werde, bekomme ich auch keinen Fehler (aber Ich erhalte den Fehler, wenn ich das Glas wie vorher laufen lasse).
Vielleicht deutet dies auf ein tieferes Problem hin?
Jede Hilfe zu diesem Thema wäre sehr willkommen.
Danke!
Ich habe versucht, Ihren Code auf meinem lokalen PC zu starten, und es gab einen ähnlichen Fehler wie bei Ihnen. Und das sind die Schritte, die ich gemacht habe, um diese Fehler zu entfernen.
Aktualisieren Sie die Springboot-Version
%Vor% Aktualisieren Sie Ihre Hauptklasse, da @SpringBootApplication
Annotation nur nach Spring Boot Version 1.2.0 existiert
Entfernen Sie die " webapp-runner
" - Abhängigkeit von pom.xml
, da diese Bibliothek auch die Klasse org.apache.catalina.core.StandardContext
hat, die mit der aus der eingebetteten Tomcat-Bibliothek in Konflikt steht.
Ja, entferne diese Zeilen;)
Starten Sie die Anwendung und profitieren Sie dann?
Ich hatte genau das gleiche Problem mit Spring boot
und embedded tomcat server
.
Nach vielen Stunden hit and trial , running und re-running fand ich, dass ich ursprünglich hinzugefügt hatte lokaler Tomcat-Server zu meinem Projekt , der einen Konflikt mit dem eingebetteten Tomcat-Server verursachte, den Spring Boot
bereitstellt. Nach dem Entfernen des Tomcat-Servers vom Build-Pfad des Projekts lief Spring Boot
wie ein Zauber.
Klicken Sie mit der rechten Maustaste auf das Projekt
%Vor%und entfernen Sie Ihre Tomcat-Server-Laufzeit, wenn Sie versehentlich eine hinzugefügt haben. Du solltest jetzt gut sein.
Tags und Links java maven spring tomcat spring-boot