我們有一個在 Jetty 9.2 上使用 Spring WebApplicationInitializer 加載的 Java 應用程序:2019-07-11 09:52:18.464:INFO:oejs.Server:main: jetty-9.2.17.v201605172019-07-11 09:52:18.487:INFO:oejs.AbstractNCSARequestLog:main: Opened /apps/jetty/servers/erti/logs/2019_07_10.request.log2019-07-11 09:52:18.491:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:/apps/jetty/servers/erti/contexts/] at interval 12019-07-11 09:52:18.522:INFO:oejsh.ContextHandler:main: Started o.e.j.s.h.ContextHandler@446e7065{/hb,null,AVAILABLE}2019-07-11 09:52:25.437:INFO:/services/information-requests:main: 1 Spring WebApplicationInitializers detected on classpath2019-07-11 09:52:26.694:INFO:/services/information-requests:main: Initializing Spring root WebApplicationContext但是,如果我們更新到 Jetty 9.4,WebApplicationInitializer 不會被拾取,并且每個頁面都會收到 404(盡管靜態資產仍然可見):2019-07-11 09:55:22.915:WARN:oejx.XmlConfiguration:main: Property 'jetty.deploy.monitoredDirName' is deprecated, value from 'jetty.deploy.monitoredDir' used2019-07-11 09:55:22.956:WARN:oejx.XmlConfiguration:main: Property 'jetty.port' is deprecated, value from 'jetty.http.port' used2019-07-11 09:55:22.988:WARN:oejx.XmlConfiguration:main: Property 'jetty.keystore.password' is deprecated, use 'jetty.sslContext.keyStorePassword' instead2019-07-11 09:55:22.990:WARN:oejx.XmlConfiguration:main: Property 'jetty.keymanager.password' is deprecated, use 'jetty.sslContext.keyManagerPassword' instead2019-07-11 09:55:22.990:WARN:oejx.XmlConfiguration:main: Property 'jetty.truststore.password' is deprecated, use 'jetty.sslContext.trustStorePassword' instead2019-07-11 09:55:23.089:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:///apps/jetty/servers/erti/contexts/] at interval 1是否需要啟用特定的 Jetty 模塊才能獲取ServletContainerInitializer實例?我的印象是 ServletContainerInitializer 自 Servlet 3.0 以來就非常標準,而 Jetty 9.4 使用 3.1?;蛘邽榱俗?Spring 容器初始化程序檢測到我們的 WebApplicationInitializer,可能還需要其他東西?
如何在 Jetty 9.4 中使用 Spring WebApplicationInitializer
慕田峪9158850
2023-03-23 15:00:00