Spring MVC 4.2.6 및 Jackson (2.7.3)에 문제가 있습니다. @RestController
제네릭 형식을 사용하는 메서드 로 absctract 클래스를 만들었습니다 . 제네릭 객체의 유형을 전달하는이 추상 클래스를 구현합니다. 나는 사용 @RequestBody
하고 DispatcherServlet
던졌습니다 JsonMappingException
(내 클래스의 인스턴스를 만들 수 없습니다). MappingJackson2HttpMessageConverter
의 애플리케이션 콘텍스트가 구성된다.
편집 : 더 많은 정보가 추가되었습니다.
public abstract class AbsctractAnimalResource<DTO extends AnimalDTO> {
// Doesn't work. Throws JsonMappingException. (@RequestBody)
@RequestMapping(value = "/bar", method = POST, produces = APPLICATION_JSON_VALUE)
public ResponseEntity<?> bar(@RequestBody DTO dto) throws Exception {
return new ResponseEntity(dto, HttpStatus.CREATED);
}
}
@RestController
@RequestMapping("/cat")
public class CatResource extends AbsctractAnimalResource<CatDTO> {
}
@RestController
@RequestMapping("/dog")
public class DogResource extends AbsctractAnimalResource<DogDTO> {
}
interface AnimalDTO { }
public class CatDTO implements AnimalDTO { }
public class DogDTO implements AnimalDTO { }
Spring 4.2.6 클래스에서 디버그 한 후이 주석을 찾았습니다.
Spring 4.2.X와 Jackson 2.7.X는 함께 작동하지 않습니다. Jackson 버전을 2.6.6으로 다운 그레이드했고 이제 모든 것이 작동합니다. Spring 4.3.X는 Jackson 2.7+에서 잘 작동합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다