스프링 부트 응용 프로그램:유형의 반환 값에 대한 변환기를 찾을 수 없습니다.
나는 간단한 글을 쓰고 있습니다.REST API
이 Spring-Boot 튜토리얼에 따라.로컬 개발 시스템에서(Ubuntu 15.04
그리고.Windows 8.1
) 모든 것이 매력적으로 작동합니다.
나는 오래된32-bit
Ubuntu 12.04 LTS
구축하려는 서버가 배치되어 있습니다.REST
서비스.
시작 로그는 괜찮지만 보내자마자GET
에의 요청./user/{id}
엔드포인트, 다음 오류가 발생합니다.
java.lang.IllegalArgumentException: No converter found for return value of type: class ch.gmazlami.gifty.models.user.User
그리고 스택 트레이스를 따라 내려갑니다.
java.lang.IllegalArgumentException: No converter found for return value of type: class java.util.LinkedHashMap
전체 스택 추적이 여기에 게시됩니다.
이 오류를 참조하여 몇 가지 답을 알아봤지만, 스프링 부트를 사용하고 있기 때문에 문제에 해당되지 않는 것 같습니다.xml
원하는 대로 구성합니다.
영향을 받는 컨트롤러는 다음과 같습니다.
@RequestMapping(value = "/user/{id}", method = RequestMethod.GET)
public ResponseEntity<User> getUser(@PathVariable Long id){
try{
return new ResponseEntity<User>(userService.getUserById(id), HttpStatus.OK);
}catch(NoSuchUserException e){
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
}
}
어떤 도움이라도 주시면 대단히 감사하겠습니다.정확히 똑같은 것들이 다른 기계에서도 완벽하게 작동하기 때문에 매우 이상합니다.
이는 단 하나의 리소스(한 가지 방법)에서만 발생했으며 그 이유를 이해할 수 없었습니다.동일한 패키지의 클래스 내 모든 메서드, 동일한 주석, 동일한 호출ResponseEntity.ok(...)
등이 방금 작동했습니다.
하지만 이것은 아닙니다.
제가 POJO 수업에서 게터를 생성하는 것을 잊어버린 것으로 밝혀졌습니다!
제가 그것들을 추가하자마자 그것은 작동했습니다.
언젠가 누군가를 구할 수 있기를 바랍니다.
pom.xml 및 mvc-syspatcher-servlet.xml 파일을 변경해야 합니다.다음 종속 항목을 pom.xml에 추가합니다.
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.4.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.3</version>
</dependency>
mvc-sublet.xml을 업데이트합니다.
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</mvc:message-converters>
</mvc:annotation-driven>
이는 "빌드" 호출을 잊어버린 경우에 발생합니다.
return ResponseEntity.status(HttpStatus.BAD_REQUEST);
다음과 같아야 합니다.
return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
제가 이 문제에 직면한 이유는 제가 생략했기 때문입니다.Getters
그리고.Setters
방법.
나머지 답변에 추가하자면, 방법은 공개적이어야 합니다.
IDE는 메소드가 "패키지 전용"일 수 있다고 플래그를 지정하여 선언의 "공개" 부분을 제거하도록 촉구했습니다(제가 어리석게도 그렇게 했습니다).
추가했습니다.public
내 방법에 따라 문제를 해결했습니다.
저는 IntelliJ Idea와 자동으로 생성된 Getter와 Setter를 사용하고 있었습니다.내가 부울 필드를 가지고 있었기 때문에success
게터는 이름이 붙여졌습니다.isSucccess()
이름을 바꿨습니다.getSuccess()
그리고 오류는 사라졌습니다.
언급URL : https://stackoverflow.com/questions/33832735/spring-boot-application-no-converter-found-for-return-value-of-type
'programing' 카테고리의 다른 글
py2exe - 단일 실행 파일 생성 (0) | 2023.07.18 |
---|---|
mongoose를 이용하여 mongoDB Atlas에 연결하는 방법 (0) | 2023.07.18 |
ASP.NET 라우팅을 사용하여 정적 파일 제공 (0) | 2023.07.18 |
#define 매크로에서 # 기호를 이스케이프하시겠습니까? (0) | 2023.07.18 |
각도 형식(반응성이 아님)의 데이터가 변경되었는지 감지 (0) | 2023.07.18 |