SpringBoot启动报数组下标越界

发布时间 2023-09-06 11:43:21作者: bean-sprout

问题描述:

启动读取配置文件时报错

关键字:

ERROR org.springframework.boot.SpringApplication - Application run failed
java.lang.ArrayIndexOutOfBoundsException: -1
Connected to the target VM, address: '127.0.0.1:58753', transport: 'socket'
2023-09-06 11:09:25.039 [background-preinit] INFO  org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 6.2.0.Final
2023-09-06 11:09:26.754 [main] ERROR org.springframework.boot.SpringApplication - Application run failed
java.lang.ArrayIndexOutOfBoundsException: -1
    at org.yaml.snakeyaml.reader.StreamReader.peek(StreamReader.java:136)
    at org.yaml.snakeyaml.scanner.ScannerImpl.scanToNextToken(ScannerImpl.java:1222)
    at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:308)
    at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:248)
    at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:634)
    at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:165)
    at org.yaml.snakeyaml.comments.CommentEventsCollector$1.peek(CommentEventsCollector.java:59)
    at org.yaml.snakeyaml.comments.CommentEventsCollector$1.peek(CommentEventsCollector.java:45)
    at org.yaml.snakeyaml.comments.CommentEventsCollector.collectEvents(CommentEventsCollector.java:140)
    at org.yaml.snakeyaml.comments.CommentEventsCollector.collectEvents(CommentEventsCollector.java:119)
    at org.yaml.snakeyaml.composer.Composer.composeScalarNode(Composer.java:214)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:184)
    at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:314)
    at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:305)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:286)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:188)
    at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:314)
    at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:305)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:286)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:188)
    at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:314)
    at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:305)
    at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:286)
    at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:188)
    at org.yaml.snakeyaml.composer.Composer.getNode(Composer.java:115)
    at org.yaml.snakeyaml.constructor.BaseConstructor.getData(BaseConstructor.java:135)
    at org.springframework.boot.env.OriginTrackedYamlLoader$OriginTrackingConstructor.getData(OriginTrackedYamlLoader.java:99)
    at org.yaml.snakeyaml.Yaml$1.next(Yaml.java:514)
    at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:198)
    at org.springframework.beans.factory.config.YamlProcessor.process(YamlProcessor.java:166)
    at org.springframework.boot.env.OriginTrackedYamlLoader.load(OriginTrackedYamlLoader.java:84)
    at org.springframework.boot.env.YamlPropertySourceLoader.load(YamlPropertySourceLoader.java:50)
    at org.springframework.boot.context.config.StandardConfigDataLoader.load(StandardConfigDataLoader.java:54)
    at org.springframework.boot.context.config.StandardConfigDataLoader.load(StandardConfigDataLoader.java:36)
    at org.springframework.boot.context.config.ConfigDataLoaders.load(ConfigDataLoaders.java:107)
    at org.springframework.boot.context.config.ConfigDataImporter.load(ConfigDataImporter.java:128)
    at org.springframework.boot.context.config.ConfigDataImporter.resolveAndLoad(ConfigDataImporter.java:86)
    at org.springframework.boot.context.config.ConfigDataEnvironmentContributors.withProcessedImports(ConfigDataEnvironmentContributors.java:116)
    at org.springframework.boot.context.config.ConfigDataEnvironment.processWithProfiles(ConfigDataEnvironment.java:311)
    at org.springframework.boot.context.config.ConfigDataEnvironment.processAndApply(ConfigDataEnvironment.java:232)
    at org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.postProcessEnvironment(ConfigDataEnvironmentPostProcessor.java:102)
    at org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor.postProcessEnvironment(ConfigDataEnvironmentPostProcessor.java:94)
    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.util.ArrayList.forEach(ArrayList.java:1255)
    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:338)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:296)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292)
    at com.xxx.ApplicationBootstrap.startup(ApplicationBootstrap.java:26)
    at com.xxx.ApplicationBootstrap.main(ApplicationBootstrap.java:59)
Disconnected from the target VM, address: '127.0.0.1:58753', transport: 'socket'

Process finished with exit code 1

排查原因:

跟代码发现,是读取配置文件注释时,发生了数组下标越界问题;

 

‘’

 解决:

1、删除掉该注释行,问题解决

2、根本问题是配置文件系统格式问题,导致以上问题,将该配置文件由windows换成unix解决