Konfigurieren web.xml (Tomcat 5) für eine servlet zur Verarbeitung aller eingehenden Anfragen?
Grundsätzlich möchte ich ein servlet zur Verarbeitung aller eingehenden Anfragen unabhängig von der Pfad. Ich bin auf shared-hosting-Umgebung mit Zugriff konfigurieren auf meine eigenen web.xml Datei.
Habe ich Folgendes konfiguriert web.xml aber es funktioniert nicht auf Tomcat 5:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Redirect</display-name>
<servlet>
<display-name>Redirect</display-name>
<servlet-name>Redirect</servlet-name>
<servlet-class>com.Redirect</servlet-class>
<init-param>
<param-name>host</param-name>
<param-value>www.myredirectdomain.com</param-value>
</init-param>
<init-param>
<param-name>redirect-type</param-name>
<param-value>301</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Redirect</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
Oben gearbeitet für alles, beginnend mit einem Verzeichnis in den Pfad, zum Beispiel:
www.mydomain.com/anypath1/anypath2...
www.mydomain.com/anypath1
Jedoch nicht funktioniert hat:
www.mydomain.com/ or
www.mydomain.com
Ich habe auch versucht, die folgenden servlet-mapping:
<servlet-mapping>
<servlet-name>Redirect</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Mit dem gleichen Ergebnis. Weder funktioniert... Jemand irgendwelche Vorschläge?
InformationsquelleAutor | 2009-04-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tomcat 5 implementiert die Servlet 2.4-Spezifikation. Es kann hier heruntergeladen werden:
JCP Servlet 2.4-Spezifikation
Auf pg. 86 - SRV.11.2 es wird beschrieben, wie Sie zum angeben des Servlet-mappings. Wenn ich verstehe, was Sie versuchen zu tun richtig, Sie versuchen, abzufangen jede Anfrage(egal, was der Pfad) zu Ihrem server mit einem einzigen Servlet. Für die, die arbeiten, Ihre webapp montiert werden muss an der default-Kontext ("ROOT") im Fall von Tomcat und Ihrer Servlet muss zugeordnet, um die Standard-servlet in Ihrem web.xml. Ihre Zuordnung in Ihrem web.xml ist richtig.
Ich denke, das problem mit den ROOT-Kontext. Was bedeutet Zugriff auf http://www.mydomain.com/und http://www.mydomain.com Anzeige? Sie nicht erwähnen, wenn Sie Ihre shared-hosting-Umgebung gibt Ihnen vollen Zugang zu Ihrem eigenen Tomcat-config, aber wenn Sie können zugreifen und ändern Sie Ihre $TOMCAT5_HOME/conf-Verzeichnis, es gibt ein paar Möglichkeiten, um diese Arbeit für Sie.
Wohl der sauberste Weg ist, um die folgenden hinzufügen:
$TOMCAT5_HOME/conf/server.xml. Dies setzt Voraus, Ihre Anwendungen, sogenannte "your-app.Krieg".
Hoffe, das hilft.
InformationsquelleAutor groodt
<url-pattern>/*</url-pattern>
funktionieren sollte. Ihre webapp bereitgestellt werden muss, auf den root-Kontext. Standardmäßig tomcat verwendet die webapp namens ROOT; Sie können jedoch ändern, es anderen zu suchen webapp in Ihrem server.xml.Andere Lösung wäre ein ServletFilter um die Arbeit zu tun, und ordnen Sie Sie auf die gleiche Weise. Es gibt vor-und Nachteile jeder Ansatz (servlet und servlet-filter). Aber von deinem Beispiel sieht es aus wie Sie nur wollen, senden Sie alles an einen anderen Standort, also entweder sollte funktionieren.
InformationsquelleAutor jt.
Muster /* wird definitiv aufrufen der Umleitungs-servlet. Hast du debug-Ihr servlet zu sehen, wenn Sie erhalten die Anfrage für diese url? Was du meinst, nicht arbeiten? Hast du irgendeine Fehlermeldung oder was passiert?
Verwenden Sie <welcome-file-list " >, wenn Sie nicht möchten, verwenden Sie eine index-Seite.
Ich sehe Sie bearbeitet nun deine Frage. Haben Sie nicht alle Kontext-Namen für Ihre webapplication, wo Sie konfiguriert web.xml oder die web.xml ist der tomcat-root-Kontext? Ich bezweifle, dass es funktionieren wird. Sie können festlegen, index.jsp in der welcome-file-Liste und in die jsp-leiten Sie die Anfrage an den servlet.
InformationsquelleAutor Bhushan Bhangale
Haben Sie versucht,
?
InformationsquelleAutor levik