gateway 启动报错

Blade 已结 1 413
renjiangyang
renjiangyang 剑圣 2022-09-27 12:47

一、该问题的重现步骤是什么?

1.  部署bladex到服务器,希望打印日志到服务器对应目录中

2.  根据之前的了解,需要各个模块启动增加 --spring.profiles.active=prod,对应查看blade.start.log模块的logback-prod.xml会将日志输出到文件

3.  默认bladex各模块没有引入对应查看blade.start.log模块,在引入过程中,发现blade-gateway的pom.xml引入导致无法启动运行

<dependency>
    <groupId>org.springblade</groupId>
    <artifactId>blade-starter-log</artifactId>
</dependency>

二、你期待的结果是什么?实际看到的又是什么?

"D:\Program Files\Java\jdk1.8.0_311\bin\java.exe" ...
连接到目标VM, 地址: ''javadebug',传输: '共享内存'', 传输: '{1}'
----启动中,读取到的环境变量:[dev],jar地址:[/D:/MyWork/db/gitee/vimicro/vimicro-blade/vimicro-BladeX/blade-gateway/target/classes/]----
2022-09-27 11:46:31.592  INFO 24288 --- [kground-preinit] o.h.validator.internal.util.Version      : HV000001: Hibernate Validator 6.2.3.Final
                   ______  _             _       ___   ___
                   | ___ \| |           | |      \  \ /  /
                   | |_/ /| |  __ _   __| |  ___  \  V  /
                   | ___ \| | / _` | / _` | / _ \   > <
                   | |_/ /| || (_| || (_| ||  __/ /  .  \
                   \____/ |_| \__,_| \__,_| \___|/__/ \__\

:: BladeX 3.0.1.RELEASE :: blade-gateway:dev :: Running SpringBoot 2.7.1 :: 

2022-09-27 11:46:33.606  WARN 24288 --- [           main] c.a.c.n.c.NacosPropertySourceBuilder     : Ignore the empty nacos configuration and get it based on dataId[blade-gateway] & group[DEFAULT_GROUP]
2022-09-27 11:46:33.623  WARN 24288 --- [           main] c.a.c.n.c.NacosPropertySourceBuilder     : Ignore the empty nacos configuration and get it based on dataId[blade-gateway.yaml] & group[DEFAULT_GROUP]
2022-09-27 11:46:33.624  WARN 24288 --- [           main] c.a.c.n.c.NacosPropertySourceBuilder     : Ignore the empty nacos configuration and get it based on dataId[blade-gateway-dev.yaml] & group[DEFAULT_GROUP]
2022-09-27 11:46:33.624  INFO 24288 --- [           main] b.c.PropertySourceBootstrapConfiguration : Located property source: [BootstrapPropertySource {name='bootstrapProperties-blade-gateway-dev.yaml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-blade-gateway.yaml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-blade-gateway,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-blade-dev.yaml,DEFAULT_GROUP'}, BootstrapPropertySource {name='bootstrapProperties-blade.yaml,DEFAULT_GROUP'}]
2022-09-27 11:46:33.624  INFO 24288 --- [           main] o.s.gateway.GateWayApplication           : The following 1 profile is active: "dev"
2022-09-27 11:46:33.911  WARN 24288 --- [           main] onfigReactiveWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [org.springblade.gateway.GateWayApplication]; nested exception is java.io.FileNotFoundException: class path resource [org/springframework/web/servlet/config/annotation/WebMvcConfigurer.class] cannot be opened because it does not exist
2022-09-27 11:46:33.911  INFO 24288 --- [           main] ConditionEvaluationReportLoggingListener : 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2022-09-27 11:46:33.927 ERROR 24288 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [org.springblade.gateway.GateWayApplication]; nested exception is java.io.FileNotFoundException: class path resource [org/springframework/web/servlet/config/annotation/WebMvcConfigurer.class] cannot be opened because it does not exist
	at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:610)
	at org.springframework.context.annotation.ConfigurationClassParser.access$800(ConfigurationClassParser.java:111)
	at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGroupingHandler.lambda$processGroupImports$1(ConfigurationClassParser.java:812)
	at java.util.ArrayList.forEach(ArrayList.java:1259)
	at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGroupingHandler.processGroupImports(ConfigurationClassParser.java:809)
	at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorHandler.process(ConfigurationClassParser.java:780)
	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:193)
	at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:331)
	at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:247)
	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:311)
	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:112)
	at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:746)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564)
	at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:66)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:308)
	at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:164)
	at org.springblade.core.launch.BladeApplication.run(BladeApplication.java:50)
	at org.springblade.gateway.GateWayApplication.main(GateWayApplication.java:36)
Caused by: java.io.FileNotFoundException: class path resource [org/springframework/web/servlet/config/annotation/WebMvcConfigurer.class] cannot be opened because it does not exist
	at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:199)
	at org.springframework.core.type.classreading.SimpleMetadataReader.getClassReader(SimpleMetadataReader.java:55)
	at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:49)
	at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:103)
	at org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.createMetadataReader(ConcurrentReferenceCachingMetadataReaderFactory.java:86)
	at org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.getMetadataReader(ConcurrentReferenceCachingMetadataReaderFactory.java:73)
	at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:81)
	at org.springframework.context.annotation.ConfigurationClassParser.asSourceClass(ConfigurationClassParser.java:696)
	at org.springframework.context.annotation.ConfigurationClassParser$SourceClass.getInterfaces(ConfigurationClassParser.java:1024)
	at org.springframework.context.annotation.ConfigurationClassParser.processInterfaces(ConfigurationClassParser.java:386)
	at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:332)
	at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:250)
	at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:600)
	... 19 common frames omitted

与目标VM断开连接, 地址为: ''javadebug',传输: '共享内存'', 传输: '{1}'

Process finished with exit code 1


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

        bladex.3.0.1.RELEASE    windows和centos7.6

        

四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

       1、blade.start.log模块出于什么考虑,默认不引入到common中

       2、为何gateway引入报错无法启动,如果需要gateway输出日志,将如何处理?


1条回答
  •  zhx1994
    zhx1994 (最佳回答者)
    2022-09-27 17:10

    gateway不能引入web相关的依赖,可以自己配置logback.

    0 讨论(1)
提交回复