2017-09-21 3 views
0

Ich bin seit zwei Tagen mit diesem Problem beschäftigt und kann keine Lösung finden. Ich habe diese Projektstruktur wie oben: enter image description here Ich möchte eine Anfrage von Survey (es ist ein Servlet) zu survey.jsp. Jetzt, wenn ich diese von IntelliJ auf localhost bereitstellen, wird die Weiterleitung mit Erfolg durchgeführt. Jetzt nehme ich die .war und benutze den Tomcat Apache Manager, um es auf einem dedizierten Server zu implementieren. Wenn ich rufe dedicatedserverip:8080 die index.jsp lädt richtig wie in localhost:8080. Aber wenn es darum geht, es zu übermitteln sind zwei Fälle:Das Weiterleiten einer Anfrage von einem Servlet an .jsp schlägt fehl, wenn es auf einem Remote-Server implementiert wird

  1. Wenn der Name .war Datei von survey.war unterscheidet, wenn die Vorwärts-I-Fehler 404 erhalten passiert. (In diesem Fall denke ich, dass die Anfrage an dedicatedserverip:8080 weitergeleitet wird)
  2. Wenn der Name der .war Datei ist survey.war, wenn vorwärts geschieht es passiert wieder index.jsp Seite laden. (In diesem Fall denke ich, die Anfrage an dedicatedserverip:8080/survey weitergeleitet wird)

Unterhalb der Code verwende ich die Anfrage weiterleiten:

req.getRequestDispatcher("/survey.jsp").forward(req, resp); 

Nun meine Frage ist: Gibt es etwas falsch gemacht? Oder gibt es etwas, das ich verstehen muss, dass ich nicht habe? Wie kann ich es beheben und das benötigte Ergebnis wie in localhost bekommen?

Antwort

0

Schließlich habe ich das Problem gelöst. Es hatte nichts mit dem Forward zu tun, das Problem lag in der Unterwerfungsaktion. Aktion war action="/survey". Ich ersetzte mit ${pageContext.request.contextPath}/survey. Und es hat das Problem gelöst. Dies erklärt, warum die Indexseite aufgerufen wurde, als .war der Name survey.war war und die Fehlerseite, wenn sie anders war. Vielen Dank für Ihre Unterstützung.

1

Haben Sie versucht, die Weiterleitung relativ statt absolut?

req.getRequestDispatcher("survey.jsp").forward(req, resp); 

Dann zusätzlich sollte es kein Problem sein, wenn Sie den Namen Ihrer WAR-Datei und damit die ServletContext der Anmeldung nicht mehr ändern.

+0

Vielen Dank für Ihre Unterstützung. Ich habe viel Zeit mit einem so kleinen Fehler verschwendet. Sie werden die Lösung für meine eigene Antwort finden – HasS

Verwandte Themen