首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >spring boot -如何避免HTTP控制器处理程序中出现“无法实例化[java.util.List]:指定的类是一个接口”?

spring boot -如何避免HTTP控制器处理程序中出现“无法实例化[java.util.List]:指定的类是一个接口”?
EN

Stack Overflow用户
提问于 2016-09-10 23:00:42
回答 2查看 19.2K关注 0票数 16

在我的spring boot REST API应用程序中,我需要通过接受一个强类型列表作为输入来处理HTTP POST:

代码语言:javascript
复制
@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中,它给出了这个错误:

代码语言:javascript
复制
org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.util.List]: Specified class is an interface

在Spring Boot中接受强类型列表的正确方式是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-10 23:44:54

尝试将RequestBody注释添加到方法定义中

代码语言:javascript
复制
@RequestMapping(value="/custtable/update", method=RequestMethod.POST)
@ResponseBody
public String updateCusttableRecords(@RequestBody List<Custtable> customers) {
    //Method body 
}
票数 30
EN

Stack Overflow用户

发布于 2017-08-19 07:21:25

对我来说,我犯了一个打字错误,不小心把一个类包装在一个列表中。删除了拼写错误,允许通过spring data rest + jackson正确地进行序列化。

代码语言:javascript
复制
List<MyClass> a; // typo
MyClass = a;// fix
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39427311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档