Ich habe eine Spring 4-Webanwendung (webapp-module.war), die lokal in Eclipse läuft und läuft, mit Java 8, Tomcat 8 und JavaConfig (keine web.xml):
Aber wenn ich auf Tomcat 8 (dieselbe Version, die ich lokal in Eclipse verwende) auf einem entfernten Ubuntu-Server bereitstellen, bekomme ich:
Ich habe Host und Port verifiziert, die korrekt sind. Es gibt keinen Fehler im Protokoll (/var/lib/tomcat8/logs/catalina.out)
%Vor%Das Zugriffsprotokoll enthält:
%Vor%Dabei steht xx.xxx.xxx.xx für die IP-Adresse meines lokalen Rechners, von wo aus ich versuche, auf die Web-App in meinem Browser zuzugreifen.
Ich schaute auf: Spring Java Config: Tomcat ohne web.xml bereitstellen aber es bietet nicht wirklich eine Lösung.
Details zu meinem Projekt unten:
Quellen
Konfig.java
%Vor%WebInitializer.java
%Vor%HelloController.java
%Vor%Sorry vorher war ich zu hastig
Es scheint, dass der Frühlingskontext überhaupt nicht geladen ist.
Ich denke, das Problem ist in diesem Stück Code:
%Vor% Sie haben ctx.register(Config.class);
In jedem Fall habe ich immer diese Art der Initialisierung verwendet:
%Vor% Wie Sie sehen können, habe ich rootContext.setConfigLocations
verwendet, um anzugeben, wo die Spring-Konfigurationsklassen zu finden sind
Auf jeden Fall Hier können Sie ein funktionierendes Beispiel finden, das ich erfolgreich auf Tomcat 8.0.39 bereitgestellt habe und 8.5.4
Ich hoffe, es ist nützlich
Angelo
Stellt sich heraus, dass ich im Code nichts falsch gemacht habe. Der Tomcat-Server ist so konfiguriert, dass er die strenge Servlet-Compliance verwendet.
%Vor%Diese Einstellung betrifft mehrere andere Eigenschaften ( siehe hier ). Eine davon ist "Das resourceOnlyServlets-Attribut eines beliebigen Context-Elements". Durch Setzen dieses Wertes auf "jsp" in der context.xml der Anwendung wurde das Problem gelöst.
Kommagetrennte Liste von Servlet-Namen (wie in /WEB-INF/web.xml verwendet), die erwarten, dass eine Ressource vorhanden ist. Stellt sicher, dass Willkommensdateien, die mit Servlets verknüpft sind, die eine Ressource erwarten (z. B. das JSP-Servlet), nicht verwendet werden, wenn keine Ressource vorhanden ist. Dies verhindert Probleme, die durch die Erläuterung der Willkommensdateizuordnung in Abschnitt 10.10 der Servlet 3.0-Spezifikation verursacht werden. Wenn die Systemeigenschaft "org.apache.catalina.STRICT_SERVLET_COMPLIANCE" auf "true" festgelegt ist, ist der Standardwert dieses Attributs die leere Zeichenfolge, andernfalls lautet der Standardwert jsp.
Fügen Sie finalName
als ROOT
in Ihrem pom.xml
hinzu. Dadurch wird ROOT.war-Datei in Ihrem Zielordner erstellt.
Danach, wenn Sie die ROOT.war-Datei in Ihrem Tomcat bereitstellen. Dann wird Ihre zugreifende URL sein Ссылка
Ich hoffe, es wird Ihr Problem lösen.
Zur weiteren Überprüfung gehen Sie bitte durch Ссылка Es wird nach Benutzername und Passwort gefragt. Überprüfen Sie, ob dies eingestellt ist oder nicht.
Wenn nicht festgelegt, gehen Sie folgendermaßen vor: Sie können nicht auf die Tomcat 8 Manager-App zugreifen , wie von E-Riz
Für ein vollständiges Beispiel, gehen Sie durch dieses Tutorial: Ссылка
Tags und Links eclipse java spring tomcat spring-mvc