Bereitstellen eines Projekts auf einem externen Tomcat

8

Ich habe den folgenden Spring Web Sockets Leitfaden zum Erstellen einer Anwendung mit Spring Web Sockets auf Stomp gefolgt. Ссылка Die Anwendung funktioniert einwandfrei, wenn ich sie mit dem eingebetteten Spring Boot-Tomcat ausführe. Jetzt möchte ich es jedoch auf einer lokalen Instanz von Tomcat 7 bereitstellen.

Ich habe die Application-Klasse folgendermaßen geändert:

%Vor%

Die WebSocket-Konfiguration ist wie folgt,

%Vor%

Und mein Build.gradle ist wie folgt,

%Vor%

Wenn ich mit der rechten Maustaste auf das Projekt klicke und es auf dem Server in Eclipse starte, wird die korrekte index.html in der folgenden URL angezeigt. Ссылка

Wenn ich jedoch die Verbindungstaste drücke, die ein Texteingabefeld öffnen soll, bekomme ich nichts. Beim Überprüfen der Entwickler-Tools, hier ist die Fehlermeldung, die ich bekomme.

%Vor%

Ich habe die Fehlermeldung gegoogelt und versucht, die Vorschläge in den folgenden Links zu implementieren, Whoops! Verbindung zu undefined verloren - Verbindung verloren, nachdem die Verbindung hergestellt wurde Stampfen Sie über den Socket, mit dem sockjs keine Verbindung herstellen kann Frühling 4 WebSocket

Und trotzdem bekomme ich den gleichen Fehler. Ich habe versucht, sowohl auf Tomcat 7 als auch auf Tomcat 8 zu deployen. Wirklich schätzen einige Hilfe zu diesem Thema.

    
Community 22.08.2016, 17:49
quelle

5 Antworten

1

Wenn Sie Spring Boot verwenden, können Sie anstelle von jar zu war packaging wechseln und zu provided scope of tomcat dependency wechseln.

Für weitere Details überprüfen Sie:

Jar zum Krieg

Build-Konfiguration

statischen Inhalt bereitstellen

    
akgaur 22.08.2016 18:27
quelle
1

Vielleicht ein Problem mit dem Anwendungskontext. Wenn Sie die App in Ihrem lokalen System ausführen, wird sie dem Kontextstammverzeichnis (/) zugeordnet. Aber wenn Sie es auf Tomcat hochladen, wird der Kontext Ihr Dateiname sein. Ex, wenn Ihr Dateiname "myapp" ist, wird der Kontext Ссылка sein, obwohl er im lokalen System als root-App läuft. Sie können dieses Problem lösen, indem Sie Ihre App als root-Kontext von tomcat festlegen oder die App-Pfade in den Produktionskontext ändern (in diesem Fall myapp). Um die ROOT App zu setzen, gehe zu (Ubuntu):

/var/lib/tomcat7/conf/server.xml

Fügen Sie dann hinzu,

%Vor%

und entfernen Sie gegebenenfalls die andere root-Konfiguration. Zuletzt Tomcat Server neu starten.

    
Sakib Sami 31.08.2016 19:33
quelle
0

Ich verwende Apache Tomcat Maven Plugin für diesen Zweck, aber Sie verwenden Gradle. Es funktioniert perfekt mit Tomcat 7, unterstützt aber nicht Tomcat 8. Bitte, siehe [link] [1]. Ссылка

    
user321 30.08.2016 12:52
quelle
0

SockJS berücksichtigt keine relativen URLs. Finden Sie einen Ansatz zu einem verwandten Problem hier

    
Akash Mishra 01.09.2016 07:24
quelle
0

Sie können die App nicht mit der IDE selbst ausführen, Sie müssen eine WAR-Datei erstellen und sie in tomcat bereitstellen, damit sie ausgeführt wird. Stellen Sie sicher, dass die Portnummer 8080 nicht von anderen Servern / Apps verwendet wird.

    
AdamIJK 01.09.2016 09:36
quelle