cloud项目中常见错误
- 错误1:
服务调用时报错
- 服务消费者模块assess通过openFeign调用服务提供者模块hires
- 如下为服务提供者模块hires的控制层接口
@RestController @RequestMapping("/hires") public class FeignController { @Autowired private UserService userService; @RequestMapping(value = "/getInfo", method = RequestMethod.GET) public RespResult getUserinfo(@RequestParam(value = "id") int id){ User userInfo = userService.getUserInfo(id); return RespResult.success(userInfo); } }
- 如下为服务消费者模块assess的service层
@Component @FeignClient(value = "hires-8081") public interface UserFeignService { @RequestMapping(value = "/hires/getInfo", method = RequestMethod.GET) public RespResult getUserinfo(@RequestParam(value = "id") int id); }
- 以下为服务消费者模块assess的控制层
@RestController @Slf4j public class UserFeignController { @Resource private UserFeignService userFeignService; @RequestMapping(value = "/hi", method = RequestMethod.GET) public RespResult getUserinfo(@RequestParam(value = "id") int id){ return userFeignService.getUserinfo(id); } }
-
错误还原:通过服务消费者模块assess-8082调用hires-8081时报错status 405 reading EmpService#findAll(Integer);
-
错误原因:在调用方法时应使用@RequestParam(value = "id")注入参数
-
错误2:
启动时报错,当前服务没有找到另一个子模块的公共类
解决方案:将公共模块编译打包发布
-
将公共模块打包,引入公共模块包
-
如下为公共模块
-
其他微服务中引入
-
错误3:
分布式微服务启动时报错:'artifactId' with value 'java' does not match a valid id pattern
错误原因:新建项目时项目名中包好空格,pom文件中artifactid中包含空格
-
错误4:
分布式微服务启动时报错:Error: Could not find or load main class
-
错误5:
导入项目后显示红色波浪线,报错等
删除.idea .mvn等文件重新编译打包项目 拉取cloud项目到本地后应先编译打包父工程,再编译打包子项目,否则会报找不到某个公共模块的错误
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
2021-07-22 ubuntu入门