Was macht ein Servlet-3.0-kompatiblen web-app-Erklärung web.xml tun?

Ich bin die Bereitstellung einer web-Anwendung, die deklariert ist web.xml und Bereitstellung als .war-Datei.

Ich bin auf die Bereitstellung von Jetty 9.1.x (aber ich denke, diese Frage ist nicht container-spezifisch).

Meine web.xml die Datei ist schon ziemlich alt und erklärt sich selbst als Servlet 2.4 Anwendung:

<web-app version="2.4" id="my_app"
     xmlns="http://java.sun.com/xml/ns/javaee"
     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">

Meine Konfiguration eigentlich erklärt einige der Servlet 3.0-nur features, wie eine Standard-Fehler-Seite. Diese Funktionen überprüfen nicht nach dem schema, aber die Funktionen scheinen, um korrekt zu arbeiten.

Da bin ich mit 3.0-features, die ich ändern möchten, ist die Erklärung richtig:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
     version="3.0">

Aber ich bin erschrocken, dies zu tun, weil ich verstehe nicht, was der Unterschied sein wird zum Jetty.

Wird die änderung der Deklaration, keine Auswirkungen auf das Laufzeitverhalten von Jetty? Tut Steg Behandlung einer 2.4-app irgendwie anders als ein 3.0 app?

  • Ich würde denken, es tut. Für investigative Zwecke, fügen Sie ein @WebListener annotierten Klasse, die ServletContextListner (oder jedes andere servlet-listener-Typ) auf Ihren Klassenpfad mit 3.0 und sehen, ob es abgeholt.
  • Meine WebListener ist nicht abgeholt, unabhängig von der Erklärung. In allen meinen Tests konnte ich nicht finden, die sich anders Verhalten. Was andere feature könnte ich testen???
  • Ich glaube, ich sehe das problem: meine app setzt auf gwt-servlet-2.5.1... also egal was ich mache, meine Wünsche werden bedient durch ein servlet 2.5 und nicht 3.0-servlet.
  • Yup, das ist es. Wenn Sie waren auf einem Servlet-3.0-kompatibel-container, würde ich denken erklärt, eine web-app-version machen würde, die container-Unterstützung nur Funktionen. Ich würde versuchen, mit einem anderen container nur um sicher zu sein.
InformationsquelleAutor Jen S. | 2014-01-27
Schreibe einen Kommentar