SpringCloud学习中遇到的基本错误
1.启动项目出现com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect错误
错误原因:在默认设置下,Eureka服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们需要禁用它的客户端注册行为。(我的错误是我的配置文件不正确)在配置文件中加入,注意还需加入端口号,即使是默认的端口8761也需要写上
server.port=8181
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
2.启动服务提供方服务时,日志中总是显示:
Fetching config from server at : http://localhost:8888
Connect Timeout Exception on Url - http://localhost:8888
这些也不是报错,在注册中心已经能看到该服务了。看着不爽,原因好像是优先默认到localhost:8888这个注册中心去注册,然后连接超时再到本地配置文件application.yml中去找server.port配置。解决:localhost:8888好像是cloud自己的默认配置,在pom.xml中去掉下面的依赖就可以了。不走默认配置,优先走本地的server.port。
org.springframework.cloud
spring-cloud-starter-config
2.1.3.RELEASE
3.Unsatisfied dependency expressed through field
feign 接口参数注解RequestParam,应写成RequestParam(“userName”)
4.mybatisplus,mybatis 会默认链接数据库
需要配置datasource,4属性,否则报not dataSource 错误
5.Required String parameter ‘userName’ is not present 属性类的参数不能加@RequestParam注解
6.服务端控制层不加注解,会提示新增成功,但获取不到参数
- 版本冲突,jar包损坏
有依赖非springboot集成依赖,本该mybatis-plus-boot-starter ,实际下载成 mybatis-plus
8.Whitelabel Error Page白页问题
在用feign调用其他服务方法的时候出现了这个问题,当时查资料说是启动类的路径问题,检查之后发现并没有问题,卡了点时间。最后发现方法没加@ResponseBody注解,初心惹得锅。建议把@Controller注解改成@RestController,防止后面在忘记。
9.gateway配置令牌桶报错
错误标志:Unable to find GatewayFilterFactory with name RequestRateLimiter
原因:最后发现是spring-boot-starter-data-redis这个包没有导进来导致的
10.Request method ‘POST’ not supported
原因:fegin 得请求框架中 自动将带有Body的get请求转化为post请求
解决方法:添加依赖替换原来的HTTP框架