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

Wicket Bootstrap应用执行Uber Jar启动时报webjars资源不存在异常如何解决

问题根因

该错误是因为Wicket Webjars默认加载的WebSphereClasspathAssetPathCollector资源收集器是为WebSphere应用服务器设计的,完全不支持Spring Boot Fat Jar的嵌套Jar路径格式(BOOT-INF/lib/xxx.jar!/xxx),且你添加的Spring MVC资源处理器完全不生效——Wicket自有独立的资源处理逻辑,不会走Spring MVC的资源映射链。


解决方案

按以下步骤逐一配置即可解决:

  1. 替换Wicket Webjars的资源收集器
    在你的Wicket应用初始化类(继承WebApplication的类)的init方法中,安装Bootstrap之前显式指定使用支持嵌套Jar的收集器,禁用默认的WebSphere收集器:
@Override
protected void init() {
    super.init();
    // 显式指定使用Jar文件资源收集器,适配Spring Boot嵌套Fat Jar
    WicketWebjars.install(this, new JarFileAssetPathCollector());
    // 再安装Wicket Bootstrap
    Bootstrap.install(this);
    // 其他原有初始化逻辑
}
  1. 升级Wicket Webjars版本(可选,适用于低版本场景)
    如果你的wicket-webjars依赖版本低于2.0.10,建议升级到最新稳定版,该版本之后原生支持Spring Boot Fat Jar的路径解析。
  2. 检查Gradle bootJar配置
    确保你的build.gradle中bootJar任务没有排除META-INF/resources路径下的资源,不要出现类似以下配置:
// 错误配置,会过滤掉webjars资源,需要删除
bootJar {
    exclude 'META-INF/resources/**'
}
  1. 删除无用的Spring MVC资源处理器配置
    你之前添加的WebConfig类的资源映射配置对Wicket完全无效,可以直接删除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:36:04