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.
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht sicher, ob dies funktioniert auch in der Jetty-8 (Sie sollten wahrscheinlich aktualisieren Sie sowieso), aber in Jetty 9 setzen Sie den folgenden code in Ihre web.xml aktivieren Servlets als Willkommens-Dateien für Jetty:
Sehen diese docs:
http://download.eclipse.org/jetty/stable-9/apidocs/org/eclipse/jetty/servlet/DefaultServlet.html
InformationsquelleAutor jjoller
entfernen
/
aus diesem<welcome-file>/foo</welcome-file>
Es sollte
wenn Sie die Eingabe von localhost:8080 dann Sie öffnen, tomcat manager, wo Sie können, finden Sie alle apps, die vorhanden sind, in den tomcat/webapps Ordner.
Ich bereitgestellt, die auf einer PaaS-cloud-running tomcat (cloudfoundry), Lokal verwende ich jetty.
Ich bin nicht mit viel Knowledge über die cloud-aber es ist eine Alternative, die ich nicht empfehlen Sie zu tun.Also, wenn Sie Eingabe von localhost:8080 dann öffnet tomcat-manager, weil seine erwähnt web.xml der tomcat(sollte nicht verwechselt werden mit der web.xml der app).Der Grund, warum ich nicht schlage vor, Sie, weil es öffnet sich direkt Ihre app und nicht Fragen Sie nach Benutzernamen und Passwort-manager verwendet, um zu tun.Gut, wenn Sie mir sagen, warum Sie direkt zugreifen möchten, um Ihre app durch die Eingabe von localhost:8080 dann habe ich(wir) finden Sie eine Alternative Lösung
InformationsquelleAutor
Sollte es sein:
Hier ist eine gute Erklärung:
http://wiki.metawerx.net/wiki/HowToUseAServletAsYourMainWebPage
InformationsquelleAutor Justin Cuaresma