Spring JavaConfig und Tomcat 8

8

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%     
u123 21.06.2016, 20:47
quelle

3 Antworten

4

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);

verwendet

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

    
Angelo Immediata 31.03.2017, 09:00
quelle
0

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.

    
zendu 06.04.2017 23:56
quelle
-1

Fügen Sie finalName als ROOT in Ihrem pom.xml hinzu. Dadurch wird ROOT.war-Datei in Ihrem Zielordner erstellt.

%Vor%

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: Ссылка

    
SkyWalker 30.03.2017 03:29
quelle