我正在迁移一个旧的多模块项目。我不能迁移,因为它有很多依赖项,所以我只做了一次迁移,希望它会更容易。
我将spring boot升级到2.4.3版本,并不断出现以下错误:
原因:org.springframework.context.applicationcontextexception:无法启动web服务器;嵌套异常为org.springframework.beans.factory.beancreationexception:创建名为“jettyservletwebserverfactory”的bean时出错,该bean在类路径资源[org/springframework/boot/autoconfigure/web/servlet/servletwebserverfactoryconfiguration$embeddedjetty.class]中定义:通过工厂方法示例化bean失败;嵌套异常为org.springframework.beans.beaninstantiationexception:未能示例化[org.springframework.boot.web.embedded.jetty.jettyservletwebserverfactory]:工厂方法“jettyservletwebserverfactory”引发异常;嵌套的异常是java.lang.noclassdeffounderror:org/eclipse/jetty/server/session/sessiondatastore,位于org.springframework.boot.web.servlet.context.servletwebserverapplicationcontext.onrefresh(servletwebserverapplicationcontext)。java:162)
我的jetty版本是9.2.28.v20190418。
我正在绞尽脑汁试图解决这个问题,但没有取得任何进展。
我该怎么解决?
更新:
我试着把SpringBoot降级到2.3.3.release,我试着把所有jetty组件升级到11.0.1,没有区别。它得到了不那么清晰,更边缘的错误信息。
更新2:
当我启动spring boot应用程序时,我收到一条消息:
说明:
试图调用不存在的方法。尝试从以下位置进行:
org.springframework.boot.web.embedded.jetty.JettyServletWebServerFactory.configureSession(JettyServletWebServerFactory.java:242)
以下方法不存在:
'void org.eclipse.jetty.server.session.SessionHandler.setMaxInactiveInterval(int)'
该方法的类org.eclipse.jetty.server.session.sessionhandler可从以下位置获得:
jar:file:/Users/dmytro/.m2/repository/org/eclipse/jetty/jetty-server/9.2.28.v20190418/jetty-server-9.2.28.v20190418.jar!/org/eclipse/jetty/server/session/SessionHandler.class
我还是不明白怎么解决,因为我没有和你一起工作 Jetty
以前太多了,但看起来有点像。
更新3:
经过无数个小时的调试,我发现 wiremock:2.27.2
以及 spring-boot:2.4.3
. 它们都依赖于不兼容的 jetty
, jetty:9.2.28.v20190418
以及 jetty:9.4.38.v20210224
.
问题是我不能移除wiremock。我不能降低Spring Boot,因为wiremock是滞后的。我还有别的选择吗?
更新4:我在github上发布了一个问题。我希望没有必要修补wiremock或重写测试代码库。
2条答案
按热度按时间ggazkfy81#
关于jetty github问题,我得到了一个解决问题的答案
jetty-bom
,所以jetty
可以自己照顾自己:这对我来说是天衣无缝的。
更新:
在我做到之前,一切都很顺利
mvn clean install
,所以在我的案例中,另一个绝对必要的依赖性是:ve7v8dk22#
Spring Boot2.4.3基于jetty 9.4.38.v20210224。班级
SessionDataStore
报告于NoClassDefFoundException
在您正在使用的jetty版本中不存在。因此,解决方案可能是升级到jetty 9.4.38.v20210224。