itsource

스프링 부트 - "[java.util] 인스턴스화에 실패했습니다.List]: HTTP 컨트롤러 핸들러에서 지정된 클래스가 "인터페이스"입니까?

mycopycode 2023. 8. 5. 10:07
반응형

스프링 부트 - "[java.util] 인스턴스화에 실패했습니다.List]: HTTP 컨트롤러 핸들러에서 지정된 클래스가 "인터페이스"입니까?

Spring boot REST API 응용 프로그램에서 강력한 유형의 목록을 입력으로 수락하여 HTTP POST를 처리해야 합니다.

@RestController
public class CusttableController {

    static final Logger LOG = LoggerFactory.getLogger(CusttableController.class);

    @RequestMapping(value="/custtable/update", method=RequestMethod.POST)
    @ResponseBody
    public String updateCusttableRecords(List<Custtable> customers) {
        try {
                for (Custtable cust : customers) {

                Custtable customer = (Custtable) custtableDao.getById(Custtable.class, 
                        new CusttableCompositeKey 
                        (cust.getAccountnum(),cust.getPartition(),cust.getDataareaid()));

이 API의 Jersey 버전에서는 잘 작동했지만 Spring Boot에서는 다음과 같은 오류가 발생합니다.

org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.util.List]: Specified class is an interface

스프링 부트에서 강력한 형식의 목록을 수락하는 올바른 방법은 무엇입니까?

메서드 정의에 RequestBody 주석을 추가하려고 합니다.

@RequestMapping(value="/custtable/update", method=RequestMethod.POST)
@ResponseBody
public String updateCusttableRecords(@RequestBody List<Custtable> customers) {
    //Method body 
}

저는 실수로 수업을 목록으로 포장하는 오타를 냈습니다.오타를 제거하면 스프링 데이터레스트 + 잭슨을 통해 직렬화가 올바르게 수행될 수 있습니다.

List<MyClass> a; // typo
MyClass = a;// fix

언급URL : https://stackoverflow.com/questions/39427311/spring-boot-how-to-avoid-failed-to-instantiate-java-util-list-specified-cl

반응형