Web-app: welcome-file-list funktioniert nicht mit servlet-mapping

Beim Besuch der bloßen url (z.B. localhost:8080), möchte ich das gleiche Verhalten wie Besuch localhost:8080/foo. Ein servlet (eigentlich ein JSP) zugeordnet ist /foo. Meine web.xml ist

<?xml version="1.0" encoding="ISO-8859-1" ?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">

    <display-name>Test</display-name>
    <description></description>

    <!-- servlets -->

    <servlet>
        <servlet-name>TestServlet</servlet-name>
        <jsp-file>/test/welcome.jsp</jsp-file>
    </servlet> 

    <!-- mappings -->
    <servlet-mapping> 
        <servlet-name>TestServlet</servlet-name>
        <url-pattern>/foo</url-pattern>
        <url-pattern>/foo/*</url-pattern>
    </servlet-mapping> 

    <welcome-file-list>
        <welcome-file>/foo</welcome-file>
    </welcome-file-list> 
</web-app> 

Wenn ich http://localhost:8080/foo bekomme ich die richtige Ausgabe; die Ausgabe von test/welcome.jsp angezeigt wird. Aber beim Besuch auf der blanken url http://localhost:8080 Anlegestelle zeigt die Datei-Liste und Tomcat 6 gibt eine "Seite nicht gefunden". Ist mein web.xml richtig?

(Version: jetty-8.0.y.z-SNAPSHOT, Tomcat 6, Java 1.6, servlet-api 2.5)

Ändern <welcome-file>/foo</welcome-file> zu <welcome-file>foo</welcome-file> macht keinen Unterschied.

Gibt es einen Fehler in meiner web.xml? Wenn nicht, was ist der richtige Weg, das zu tun, was ich will.

EDIT: Scheint ein bug im Jetty-8. Es begann in Jetty-9.

Dies sollte die Arbeit nach Spezifikationen (Servlet 2.4, SRV.9.10), ABER es gibt einige Verwirrung und zu einer zusammenhängenden bug (siehe die Diskussion über den bug). ähnliche Frage kam ein paar Tage her und schlug jemand einen workaround, check it out.
Ich habe immer gedacht, dass die welcome-Datei sollte sich eine Datei, nicht eine url.
Seltsam, das problem verschwand mit Jetty-9.

InformationsquelleAutor Jus12 | 2013-11-15

Schreibe einen Kommentar