分布式项目启动失败
提示如下图所示:
问题1: 分布式项目启动失败,报图所示错误提示.
在Fegin的实现中未添加对应注解 @Component ,导致找不到该方法执行失败后的fallback.
问题2: 启动时候报错,提示依赖的fegin错误.
在启动的时候报错如下所示,提示依赖的fegin创建错误,具体原因是红色部分,提示过多的body,post请求的方法参数上加@RequestParam 注解即可解决.
问题3: 正式项目启动后,部分请求异常,部分请求成功,此处有代码优化处理;
在正式环境项目启动后,部分请求是正常执行的,但是部分请求未正常执行获取应有数据,但是拉取正式环境代码在本地debug后发现代码正常.随即想到正式是多节点,统一用Jenkins进行重启,可能部分节点启动失败导致,然后正常重启项目,重启之后该问题未复现.
此处想到的是可能异常节点由于网络异常导致的服务未正常拉取最新代码进行部署.具体原因也在搜索中,欢迎各位大佬补充~
问题4: 项目启动的时候报无法正确查询到对应的配置文件值 IllegalArgumentException: Circular placeholder reference XXX in property definitions.
会报这种在xml文件中找不到
我是在IDEA内的设置,但是之前启动都无碍,本次启动就突然这样了,在idea的Maven中把多余的选中配置文件取消即可
此处本来是有dev选中的,我去掉勾选后即可正常启动
问题5: 项目启动的时候报无法连接到数据库提示 SQLException: Access denied for user ‘’@‘localhost’ (using password: NO). 大意导致!!
验证账号密码是正确的,但就是启动时报该提示,经过排查是因为在配置文件中缩进有问题;因为使用的是yml文件,所以缩进是必须按照正确书写格式的。此处可能在写的时候没注意导致。
问题6:An illegal reflective access operation has occurred
启动项目提示如图,为JDK版本太高,降低JDK版本即可,自己电脑内有JDK11和JDK8,降到8即可。亲测可用
问题7:Consider defining a bean of type com.yore.product.client.XXXXClient in your configuration
项目中采用的是Fegin进行服务间调用,启动时报该错误; 解决:在启动类上加注解@EnableFeignClients(basePackages = "com.xxxx.form.xxxx.client"),此处为调用服务的包名
问题8:启动服务抛出异常:Singleton bean creation not allowed while the singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!)
在项目启动时,报该错误。经过原因分析,是单例的bean在创建的时候,容器已经处于销毁阶段,生命周期不同,不允许再次创建生产Bean。经过排查是因为有service是通过策略模式编写的,即一个service多个实现,这在controller中引入是不行的,需要直接引具体实现类;另外在排查的过程中,也发现别人说的是线程池问题,主线程运行时,启动了线程池,线程池中的任务会加载bean,但因为异步原因,任务提交给线程池后,主线程结束了,开始销毁bean容器,而线程池任务有需要创建出bean,所以出现上述的异常情况。
问题9:项目启动报错:conflicts with existing, non-compatible bean definition of same name and class
原因分析:提示的是我具体的controller重复,想到是改过包路径,所以可能jar包里面未更新导致;随后进行clear一下对应模块,再进行启动项目即可成功