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

添加web3j依赖后Maven Jetty启动超时并报503错误求助

解决Jetty启动时注解扫描超时(web3j依赖导致)的问题

我之前在给Spring Web项目引入web3j依赖时,也碰到过一模一样的Jetty注解扫描超时问题,当时折腾了好一会儿,分享几个可行的解决办法:

问题根源

web3j的core、crypto、abi这几个依赖包里包含了大量的类和注解,Jetty默认的启动注解扫描机制会遍历所有依赖包的内容,而默认的扫描超时时间不足以完成这么大的扫描量,导致启动失败,浏览器返回503服务不可用。

解决方案

1. 直接延长注解扫描超时时间

最简单的方式是给Jetty的注解扫描设置更长的超时时间,在你的pom.xml里找到jetty-maven-plugin的配置(如果没有就新增),添加扫描时间限制:

<plugin>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <!-- 替换成你当前使用的Jetty版本 -->
    <version>9.4.51.v20230217</version>
    <configuration>
        <webApp>
            <annotationConfiguration>
                <!-- 设置扫描超时为30秒(单位:毫秒),可以根据需要调整 -->
                <scanTimeLimit>30000</scanTimeLimit>
            </annotationConfiguration>
        </webApp>
    </configuration>
</plugin>

修改后执行mvn clean jetty:run,让Jetty有足够时间完成扫描。

2. 缩小注解扫描范围(更高效)

如果延长时间还是不行,或者想从根本上提升启动速度,建议配置Jetty只扫描你自己项目的代码和必要的Spring依赖包,排除web3j的包(毕竟我们不需要扫描web3j内部的注解):

<plugin>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-maven-plugin</artifactId>
    <version>你的Jetty版本</version>
    <configuration>
        <webApp>
            <annotationConfiguration>
                <!-- 排除所有web3j相关的jar包,避免扫描 -->
                <excludeJarPattern>.*/web3j-(core|crypto|abi)-.*\.jar$</excludeJarPattern>
                <!-- 只扫描自己项目的类包和Spring核心包(根据你的实际情况调整) -->
                <includeJarPattern>.*/crowdfunding-.*\.jar$, .*/spring-(core|context|webmvc)-.*\.jar$</includeJarPattern>
            </annotationConfiguration>
        </webApp>
    </configuration>
</plugin>

这种方式能大幅减少Jetty需要扫描的类数量,不仅解决超时问题,还能提升启动速度。

3. 检查Jetty版本兼容性

如果使用的Jetty版本比较旧,建议升级到较新的稳定版本(比如9.4.x或11.x系列),旧版本的注解扫描机制对大量依赖的处理效率较低,更容易出现超时问题。

验证方法

修改完pom.xml后,先执行mvn clean清理之前的构建缓存,再执行mvn jetty:run启动项目,观察控制台是否还会出现扫描超时的警告,同时访问浏览器看是否能正常加载页面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:23:42