开发者社区 > 云原生 > 正文

tomcat10运行war包启动失败

已解决

idea和jar包都能正常运行,在tomcat10 + jdk17运行环境下提示servlet已注册,请教大神该如何解决 。附上报错信息:
Caused by: java.lang.IllegalStateException: Failed to register 'filter springSecurityFilterChain' on the servlet context. Possibly already registered?
at org.springframework.boot.web.servlet.DynamicRegistrationBean.register(DynamicRegistrationBean.java:122)
at org.springframework.boot.web.servlet.RegistrationBean.onStartup(RegistrationBean.java:52)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.selfInitialize(ServletWebServerApplicationContext.java:236)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:192)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:161)

展开
收起
游客hhkjn22oa3vvo 2023-10-08 09:28:48 242 0
1 条回答
写回答
取消 提交回答
  • 十分耕耘,一定会有一分收获!
    推荐回答

    楼主你好,看了你的问题,根据你的报错信息,是因为在ServletContext上已经注册了名字为'springSecurityFilterChain'的过滤器,导致注册失败。

    很有可能是由于war包中的web.xml文件中已经注册了该过滤器,而在Spring Boot应用中也注册了该过滤器。

    针对上述问题的解决方案,你首先要去确认war包中是否已经注册了该过滤器,如已注册则删除web.xml中的注册配置;然后再去确认Spring Boot应用中是否已经注册了该过滤器,如已注册则删除对应的注册配置。

    如果上面操作步骤依然解决不了问题,你可以尝试去升级Spring Boot版本或者更换其他版本的Spring Security依赖,然后再试一次。

    2023-10-10 10:08:03
    赞同 展开评论 打赏
问答分类:
问答地址:

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
Apache Tomcat 的云原生演进 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载