openFeign远程调用返回页面404 ,对应配置文件不生效,排除数据源等问题

在使用上架商品功能时,在debug时候,发现在将数据发送给ES保存时,无法远程调用es的服务,报错404找不到接口,如下图:
在这里插入图片描述
一开始以为是openFeign的问题,经过检查,各种接口、注解都没问题,而且这个404感觉不是找不到路径的问题,感觉是服务本身的问题,后来写了个简单的controller,用postman测试一下
在这里插入图片描述

在这里插入图片描述

可以说相当奇怪了,这种404还真没遇到过,把响应结果复制保存成html,访问一下更是给我惊了:
在这里插入图片描述
这是哪里出了问题呢,我觉得可能是elasticsearch和springcloud冲突了,于是新建了一个项目,除了web依赖,什么都没有,然后一步步的加上依赖,
一开始能正常访问到:直到加上了common模块,就开始报这个错了,
**第一步:**猜想可能是application.properties的问题,于是换成yml文件,

spring:
  application:
    name: gulimall-test2

server:
  port: 12003

项目启动报错:导致这个问题的原因是因为,在 pom.xml 配置文件中,配置了数据连接技术 spring-boot-starter-jdbc 包 ,在启动配置文件时 ,Spring Boot 的自动装配机制就会去配置文件中找,相关的数据库的连接配置信息,如果找不到则抛出异常信息
在这里插入图片描述
这个在启动类注解上排除DataSource自动装配即可:exclude = DataSourceAutoConfiguration.class,启动仍旧报错,显然是没起到作用,后来猜测,可能是依赖中包含了druid-spring-boot-starter,会再次扫描数据源,增加排除依赖:

@SpringBootApplication(exclude = {
    
    DataSourceAutoConfiguration.class,
        DruidDataSourceAutoConfigure.class})

成功启动访问:
在这里插入图片描述
后续将配置文件换回properties,启动,仍旧报错404,真是奇了怪了

中间还有个小插曲,将配置文件替换为yml时候,yml直接没生效,端口还是8080,这里反复好几次,bug无法复现了,但是找到了对应的解决方法:

完美解决failed to configure a datasource: ‘url‘ attribute is not specified and no em

参考链接:
exclude= {DataSourceAutoConfiguration.class}失效 解决方案

猜你喜欢

转载自blog.csdn.net/weixin_42260782/article/details/128528775