将用户保存到数据库时出现 405 方法不允许错误 - spring boot

问题描述

我正在学习微服务架构并尝试掌握通信、API 网关等。

我正在尝试使用这段代码用户保存在数据库中:

 @PostMapping(consumes = {MediaType.APPLICATION_JSON_VALUE,MediaType.APPLICATION_XML_VALUE},produces = {MediaType.APPLICATION_JSON_VALUE,MediaType.APPLICATION_XML_VALUE})
    public ResponseEntity<CreateTeamResponseModel> createTeam(@Valid @RequestBody CreateTeamRequestModel userDetails){

        LOG.log(Level.INFO,"Inside saveTeam method of TeamController");
        modelmapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
        TeamDto teamDto = modelmapper.map(userDetails,TeamDto.class);
        TeamDto createdTeam = teamService.createTeam(teamDto);

        CreateTeamResponseModel returnValue = modelmapper.map(createdTeam,CreateTeamResponseModel.class);
        return ResponseEntity.status(HttpStatus.CREATED).body(returnValue);
    }

这是application.yaml file

server:
  port: 9092

spring:
  config:
    import: optional:configserver:http://localhost:9296
  application:
    name: user-service
  devtools:
    restart:
      enabled: true
  datasource:
    url: jdbc:postgresql://localhost:5432/usermicroservice?useUnicode=true&useJDBCCompliantTimezoneshift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
    username: postgres
    password: user
  jpa:
    show-sql: true
    # Hibernate ddl auto (create,create-drop,validate,update)
    hibernate:
      ddl-auto: update

      ## Hibernate Properties
      # The sql dialect makes Hibernate generate better sql for the chosen database
    properties:
      hibernate:
        dialect: org.hibernate.dialect.PostgresqlDialect
        format_sql: true
  jackson:
    serialization:
      fail-on-empty-beans: false

这是邮递员请求:

{
    "firstName":"annie","lastName":"amby","email":"[email protected]","teamId":"4"
}

当我在 Postman 中测试时出现以下错误

"timestamp": "2021-07-31T15:34:54.084+00:00","path": "/user/","status": 405,"error": "Method Not Allowed","requestId": "6ae24305-3"

虽然当我检查我的数据库用户已创建。

这段代码在我添加API网关之前没有报错:

server:
  port: 8082

spring:
  application:
    name: api-gateway
  cloud:
    gateway:
      routes[0]:
        id: user-service
        # lb-load balancer (use of built-in load balancer)
        uri: lb://user-service
        predicates[0]:
          Path=/user/**
        filters[0]:
          name: CircuitBreaker
          args:
            name: user-service
            fallbackuri: forward:/userServiceFallBack
      routes[1]:
        id: team-service
        # lb-load balancer (use of built-in load balancer)
        uri: lb://team-service
        predicates[0]:
          Path=/team/**
        filters[0]:
          name: CircuitBreaker
          args:
            name: team-service
            fallbackuri: forward:/teamServiceFallBack

我不确定为什么会显示错误。我错过了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)