You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot项目IDEA运行正常 打Jar包启动提示缺少ServletWebServerFactory错误

解决方案

根因说明

IDEA中bootRun命令默认启用dev配置文件,不存在配置错误因此启动正常;打包后的jar默认加载你配置的prod配置文件,prod配置存在多处语法、路径错误,导致Spring上下文初始化中断,最终抛出ServletWebServerFactory缺失的错误。

具体修复步骤

  • 修复application.properties中的JPA配置语法错误
    你当前将JPA命名策略的属性名拆分为两行,Spring无法识别该配置,需要合并为一行:
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
  • 修复application-prod.properties中数据库密码的ENC格式错误
    当前数据库密码的加密值缺少ENC的闭合右括号,Jasypt无法正常解析加密参数,修改为:
spring.datasource.password=ENC(VJPGTDVqPqsBnnzKXOtj10sZ3/ui+Y38)
  • 修复SSL证书路径配置
    打包为jar包后不存在src/main/resources目录,资源文件统一存放在classpath下,修改证书路径:
server.ssl.key-store=classpath:leafyproject.p12
  • 确认打包命令正确
    使用SpringBoot官方提供的bootJar任务打包,生成的可执行jar会包含所有依赖:
gradle bootJar

生成的jar文件位于项目build/libs目录下。

  • (生产环境建议优化)jasypt密钥通过启动参数传入
    不要将加密密钥硬编码在配置文件中,启动jar时通过参数传入,同时删除配置文件中的jasypt.encryptor.password=Leaf23配置,避免密钥泄露:
java -jar 你的jar包名称.jar --jasypt.encryptor.password=Leaf23

内容的提问来源于stack exchange,提问作者devo9191

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:06:03