Wir haben von Jetty 8 zu Jetty 9 migriert und wir haben mehrere Fehler auf JSP-Seiten, die in Jetty 8 arbeiten, wie JSP Error gefunden: enthält ungültigen Ausdruck, konnte Ausnahme nicht analysieren. Auch einige unserer anderen Seiten werden nicht gefunden, da der Schrägstrich auf dem URL-Pfad doppelt vorhanden ist. Sie funktionieren tadellos auf Jetty 8, aber nicht auf Jetty 9. Gibt es eine Liste, die Richtlinien zur Verfügung stellt, was zu überprüfen ist, wenn Sie von Jetty 8 zu Jetty 9 Version migrieren? Vielen Dank.Upgrade von Jetty 8 auf Jetty 9
Antwort
Das Upgrade von Jetty 8 auf Jetty 9 umfasst viele Hauptversionen des Upgrades.
Zur Erinnerung: Jetty Versionierung (seit 1995) hat ...
<servlet_support>.<major_version>.<minor_version>
Das heißt, von der Anlegestelle 8.1.x bis 9.4.x Sie haben 5 Hauptversion Versionen von Jetty (das ist ein großen Sprung in Versionen)
Manches von Anmerkung:
- Die JSP Engine wurde von der fehlerhaften Glassfish JSP Engine auf die Apache Jasper JSP umgestellt.
- Servlet-Spezifikation geänderte Pfadnormierungsregeln/-verhalten (interne Normalisierung ist zulässig, aber nur zur Bestimmung der spezifischen Webapp, zu der die Normalisierung in allen anderen Bereichen zulässig ist)
- HTTP Spec-Unterstützung von RFC2616 (veraltet) zu verschoben RFC7230 (und andere)
- Cookie-Spec-Unterstützung aktualisiert RFC6265 unterstützen aktuelle Browser-Mindestanforderungen (Version 1 Cookies nicht mehr unterstützt)
- HTTP/0.9 Unterstützung fallen gelassen zu erfüllen (und alle damit verbundenen Verhaltensweisen in Parser/Generator)
- HTTP/2-Unterstützung hinzugefügt
- Lenient UrlEncoded Parsing-Verhalten von Formularen gelöscht. Eine fehlerhafte Formularcodierung löst jetzt einen Fehler 400 aus. (Dies war eine der Sicherheit und des Datenkorruption bedingte Änderung)
Die Warnungen/Fehler in Ihrer JSPs sind wahrscheinlich von Buggy (Nicht-spec-konform) JSPs Nutzung, oder dass Ihr JSPs auf Buggy Verhalten verlassen in Glassfish JSP-Engine .
Der doppelte Schrägstrich in einem URI/URL hat eine Bedeutung für die Servlet-Spezifikation und viele Bibliotheken. Dies wird beim Versenden (request/include/forward/error/async) an eine Servlet/Filterkette nicht herausgefiltert. Die Normalisierung erfolgt zwar intern, wird jedoch nur verwendet, um den entsprechenden Kontextpfad (eine bestimmte Webanwendung) zu identifizieren, an den die Anforderung gesendet werden soll.
Solange Sie die Servlets und JSP-Spezifikationen richtig zu nutzen, sollten Sie keine Probleme haben, ein Upgrade von Jetty 8.x.x Jetty 9.x.x (Millionen Anlegestelle Websites haben dies getan, ohne Ausgabe)
- 1. Embedding Jetty 9 - Wo ist Jetty-all.jar?
- 2. Jetty 9 - HttpCompliance.LEGACY
- 3. Jetty 9 Handler Beispiele?
- 4. Einführung Jetty 9 Programmatically
- 5. Sicherheitskonstant in Jetty überschreiben 9
- 6. Embedded Jetty 9 HttpException äquivalent?
- 7. kann nicht mit Embedded Jetty 9
- 8. ContinuationListener scheint nicht in einer Filterkette von Jetty des ProxyServlet beendet zu arbeiten, nachdem Jetty von 8.x Upgrade
- 9. dauerhaft von http auf https in Jetty umleiten 9
- 10. Lauf Eclipse Jetty 9 mit Gradle
- 11. Jetty-9 Warnung: badMessage: 400 Unzulässiges Zeichen
- 12. Ändern der Threadpoolgröße in Jetty 9
- 13. Jetty 9 mit Oracle 11g Verbindungsproblem
- 14. Anwendungsstart auf Jetty beschleunigen
- 15. Jetty HashSessionManager
- 16. Unterstützt Embedded Jetty Java 8 kompakte Profile?
- 17. Jetty 8 set "session-timeout" ohne web.xml?
- 18. Jetty IdleTimeout
- 19. Jetty Startverzögerung
- 20. Running Jetty von Eclipse
- 21. Erste Fehler Scan-Datei, wenn Anlegesteg 9 auf Java läuft 8 mit dem Maven Jetty Plugin
- 22. Verwendung von Embedded Jetty 9 nur mit HTTPS
- 23. GWT Änderung Jetty Version
- 24. Jetty: NoClassDefFoundError
- 25. Jetty Startverzögerung aufgrund Scan
- 26. Entfernen Sie den HTTP-Server-Header in Jetty 9
- 27. Docker - Run Jetty auf HTTPS
- 28. Konfigurieren von StdErrLog auf einem Embedded Jetty
- 29. Verwenden von ServletContextListener mit Jetty
- 30. Jetty Antwort Embedded