Для интерфейса java.util.Map не найден основной или единственный уникальный конструктор, когда я вызываю операцию получе ⇐ JAVA
Для интерфейса java.util.Map не найден основной или единственный уникальный конструктор, когда я вызываю операцию получе
Я получил эту ошибку при запуске модульного теста, вызывающего операцию получения (я использую Spring 2.7.4):
java.lang.IllegalStateException: нет первичного или единственного уникального найден конструктор для интерфейса java.util.Map.
Я использую клиент openfeign в классе контроллера. Это мой код
Клиент открыт:
@RequestMapping(value = "/api/v1/organos", потребляет = MediaType.APPLICATION_JSON_VALUE) @FeignClient(contextId = OrganosFeignClientConfig.ORGANOS_CLIENT_NAME, name = "indexa-api-rest", конфигурация = OrganosFeignClientConfig.class) общедоступный интерфейс OrganosClient { @GetMapping Ответ getUnidadesOrganicas( @RequestParam(value = «страница», требуется = false) Целочисленная страница, @RequestParam(value = «размер», требуется = false) Целочисленный размер, @RequestParam (значение = «сортировка», требуется = ложь) Сортировка строк, @RequestParam(name = "incluirBoradores", требуется = false) Строка incluirBoradores, @SpringQueryMap Map filtroQueryDSL); @GetMapping(value = "/{id}") Respuesta getUnidadOrganicaById(@PathVariable(required = true) окончательный идентификатор строки, @RequestParam(name = "incluirBoradores", требуется = false) String incluirBoradores); } Контроллер:
@RestController @RequestMapping("/api/v1") @Slf4j @RequiredArgsConstructor @Проверено общественный класс OrganosController { частный окончательный OrganosClientorganosClient; @Operation(summary = "Восстановление причины получения ответа", описание = "Восстановление документа по причине получения уведомления") @ApiResponses(значение = { @ApiResponse(responseCode = "200",description = "Правильное восстановление", content = { @Content(mediaType = "application/json") }), @ApiResponse(responseCode = "400",description = "Неверные данные о вводе", content = { @Content(mediaType = "application/json", схема = @Schema(реализация = IssueDetail.class)) }), @ApiResponse(responseCode = "500",description = "Не удалось выполнить консультацию по уведомлению", content = { @Content(mediaType = "application/json", схема = @Schema(реализация = IssueDetail.class)) }) }) @GetMapping(path = "/organos", производит = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity recuperarOrganosVigentes() { пытаться { окончательная Map queryDSLFilters = new HashMap(); queryDSLFilters.put("estado", "Vigente"); окончательный вар ответ = this.organosClient.getUnidadesOrganicas(0, 10, null, null, queryDSLFilters); вернуть ResponseEntity.ok().body(respuesta); } catch (окончательный RestApiException apiEx) { log.error("Ошибка в службе восстановления отдельных органов: {}", apiEx.getMessage()); бросить apiEx; } } } Модульный тест:
@TestPropertySource(properties = { "spring.config.location=classpath:/application.yaml, classpath:/application-test.yaml" }) @Slf4j класс OrganosControllerUnitTest расширяет BaseRestTest { @MockBean частный OrganosClientorganosClient;; @Тест @WithMockJwt("{\"resource_access\": {\"cor-tramita-sa\": {\"roles\": [\"" + RestApiStarterConst.ROL_TRAMITA_NUCLEO_GESTOR + "\"]}}}") void dadoServicioOrganos_cuandoGetOrganosEstadoVigente_entoncesOK() выдает исключение { doReturn(OrganosTestUtil.generateMockUnidadOrganicasVigentes()).when(this.organosClient) .getUnidadesOrganicas(anyInt(), AnyInt(), Any(), Any(), Any()); окончательный ответ var = this.given().contentType(ContentType.JSON).when().get("/api/v1/organos"); log.info(response.toString()); } } Я пытался изменить @SpringQueryMap Map filtroQueryDSL для конкретной реализации, но это не сработало. Когда я вызываю метод на своем сервере с помощью Postman, он работает нормально.
Я получил эту ошибку при запуске модульного теста, вызывающего операцию получения (я использую Spring 2.7.4):
java.lang.IllegalStateException: нет первичного или единственного уникального найден конструктор для интерфейса java.util.Map.
Я использую клиент openfeign в классе контроллера. Это мой код
Клиент открыт:
@RequestMapping(value = "/api/v1/organos", потребляет = MediaType.APPLICATION_JSON_VALUE) @FeignClient(contextId = OrganosFeignClientConfig.ORGANOS_CLIENT_NAME, name = "indexa-api-rest", конфигурация = OrganosFeignClientConfig.class) общедоступный интерфейс OrganosClient { @GetMapping Ответ getUnidadesOrganicas( @RequestParam(value = «страница», требуется = false) Целочисленная страница, @RequestParam(value = «размер», требуется = false) Целочисленный размер, @RequestParam (значение = «сортировка», требуется = ложь) Сортировка строк, @RequestParam(name = "incluirBoradores", требуется = false) Строка incluirBoradores, @SpringQueryMap Map filtroQueryDSL); @GetMapping(value = "/{id}") Respuesta getUnidadOrganicaById(@PathVariable(required = true) окончательный идентификатор строки, @RequestParam(name = "incluirBoradores", требуется = false) String incluirBoradores); } Контроллер:
@RestController @RequestMapping("/api/v1") @Slf4j @RequiredArgsConstructor @Проверено общественный класс OrganosController { частный окончательный OrganosClientorganosClient; @Operation(summary = "Восстановление причины получения ответа", описание = "Восстановление документа по причине получения уведомления") @ApiResponses(значение = { @ApiResponse(responseCode = "200",description = "Правильное восстановление", content = { @Content(mediaType = "application/json") }), @ApiResponse(responseCode = "400",description = "Неверные данные о вводе", content = { @Content(mediaType = "application/json", схема = @Schema(реализация = IssueDetail.class)) }), @ApiResponse(responseCode = "500",description = "Не удалось выполнить консультацию по уведомлению", content = { @Content(mediaType = "application/json", схема = @Schema(реализация = IssueDetail.class)) }) }) @GetMapping(path = "/organos", производит = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity recuperarOrganosVigentes() { пытаться { окончательная Map queryDSLFilters = new HashMap(); queryDSLFilters.put("estado", "Vigente"); окончательный вар ответ = this.organosClient.getUnidadesOrganicas(0, 10, null, null, queryDSLFilters); вернуть ResponseEntity.ok().body(respuesta); } catch (окончательный RestApiException apiEx) { log.error("Ошибка в службе восстановления отдельных органов: {}", apiEx.getMessage()); бросить apiEx; } } } Модульный тест:
@TestPropertySource(properties = { "spring.config.location=classpath:/application.yaml, classpath:/application-test.yaml" }) @Slf4j класс OrganosControllerUnitTest расширяет BaseRestTest { @MockBean частный OrganosClientorganosClient;; @Тест @WithMockJwt("{\"resource_access\": {\"cor-tramita-sa\": {\"roles\": [\"" + RestApiStarterConst.ROL_TRAMITA_NUCLEO_GESTOR + "\"]}}}") void dadoServicioOrganos_cuandoGetOrganosEstadoVigente_entoncesOK() выдает исключение { doReturn(OrganosTestUtil.generateMockUnidadOrganicasVigentes()).when(this.organosClient) .getUnidadesOrganicas(anyInt(), AnyInt(), Any(), Any(), Any()); окончательный ответ var = this.given().contentType(ContentType.JSON).when().get("/api/v1/organos"); log.info(response.toString()); } } Я пытался изменить @SpringQueryMap Map filtroQueryDSL для конкретной реализации, но это не сработало. Когда я вызываю метод на своем сервере с помощью Postman, он работает нормально.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Для класса не найден основной или единственный уникальный конструктор — Spring Boot
Anonymous » » в форуме JAVA - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-