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

SpringBoot应用启动报错:java.lang.IllegalArgumentException异常求助

问题描述

启动Spring Boot应用时触发如下错误:

OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.
07:13:51.810 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
java.lang.IllegalArgumentException: Sources must not contain null elements
    at org.springframework.util.Assert.notNull(Assert.java:201)
    at org.springframework.boot.context.properties.bind.Binder.<init>(Binder.java:186)
    at org.springframework.boot.context.properties.bind.Binder.<init>(Binder.java:160)
    at org.springframework.boot.context.properties.bind.Binder.<init>(Binder.java:139)
    at org.springframework.boot.context.properties.bind.Binder.<init>(Binder.java:120)
    at org.springframework.boot.context.properties.bind.Binder.<init>(Binder.java:75)
    at org.springframework.cloud.commons.ConfigDataMissingEnvironmentPostProcessor.getConfigImportArray(ConfigDataMissingEnvironmentPostProcessor.java:113)
    at org.springframework.cloud.commons.ConfigDataMissingEnvironmentPostProcessor.propertySourceWithConfigImport(ConfigDataMissingEnvironmentPostProcessor.java:109)
    at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:178)
    at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
    at org.springframework.cloud.commons.ConfigDataMissingEnvironmentPostProcessor.getConfigImports(ConfigDataMissingEnvironmentPostProcessor.java:99)
    at org.springframework.cloud.commons.ConfigDataMissingEnvironmentPostProcessor.postProcessEnvironment(ConfigDataMissingEnvironmentPostProcessor.java:78)
    at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEnvironmentPreparedEvent(EnvironmentPostProcessorApplicationListener.java:102)
    at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEvent(EnvironmentPostProcessorApplicationListener.java:87)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131)
    at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:85)
    at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:66)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
    at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:120)
    at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:114)
    at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:65)
    at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:344)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:302)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295)
    at com.example.oauth2resttemplate.Application.main(Application.java:14)

Process finished with exit code 1

启动类代码:

@SpringBootApplication
@EntityScan(basePackages = "com.example.oauth2resttemplate")
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

问题在添加另一个项目的API jar依赖后出现,该jar中的类仅使用以下注解:

@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
解决方案

1. 排查外部jar的配置文件

检查引入的API jar中是否包含bootstrap.properties、bootstrap.yml或application.properties/application.yml配置文件,重点查看是否存在spring.config.import配置项带有null值或空值——这类配置会触发Spring Cloud的配置处理逻辑并抛出该异常。如果发现问题配置,直接移除或修正即可。

2. 排除Spring Cloud相关自动配置

如果你的项目本身不需要Spring Cloud功能,但外部jar传递引入了Spring Cloud依赖,导致触发ConfigDataMissingEnvironmentPostProcessor的逻辑,可以在启动类上排除相关自动配置:

@SpringBootApplication(exclude = {ConfigDataAutoConfiguration.class, ConfigDataEnvironmentPostProcessor.class})
@EntityScan(basePackages = "com.example.oauth2resttemplate")
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

3. 检查项目自身配置文件

查看项目的application.properties/application.yml中是否存在spring.config.import配置项,确保其值不为null或空。如果不需要该配置,直接移除即可。

4. 移除不必要的Spring Cloud传递依赖

使用依赖分析工具(如Maven的mvn dependency:tree或Gradle的./gradlew dependencies)检查外部jar是否传递引入了Spring Cloud相关依赖。如果项目不需要这些依赖,通过依赖排除规则移除:

Maven示例

<dependency>
    <groupId>你的API依赖groupId</groupId>
    <artifactId>你的API依赖artifactId</artifactId>
    <version>你的API依赖版本</version>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-commons</artifactId>
        </exclusion>
    </exclusions>
</dependency>

Gradle示例

implementation('你的API依赖groupId:你的API依赖artifactId:你的API依赖版本') {
    exclude group: 'org.springframework.cloud', module: 'spring-cloud-commons'
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:15:47