为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Jetty 9.4 中使用 Spring WebApplicationInitializer

如何在 Jetty 9.4 中使用 Spring WebApplicationInitializer

慕田峪9158850 2023-03-23 15:00:00
我们有一个在 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,可能还需要其他东西?
查看完整描述

1 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

我发现了问题。我们web.xml还没有更新,仍然配置了 2.4 的 webapp 版本。Jetty 的行为已在https://github.com/eclipse/jetty.project/issues/1466中更改,因此它不再查找ServletContainerInitializer低于 2.5 的 webapp 版本。



查看完整回答
反对 回复 2023-03-23
  • 1 回答
  • 0 关注
  • 141 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号