【问题标题】:Abstract class @RestController Spring 4 - @ResponseBody error抽象类@RestController Spring 4 - @ResponseBody 错误
【发布时间】:2016-07-19 22:44:32
【问题描述】:

我正在对我的 CRUD 进行抽象,使用我需要的方法创建一个抽象类。虽然我已经完成了,但是当我发送插入(POST)和更新(PUT)的请求时,Spring 框架不会将 转换为具体类。调用“createdAction”或“updateAction”的任何方法都不起作用。

@RestController
@RequestMapping("/user")
public class UserWebResource extends AbstractWebResource<UserEntity> { }

__

public abstract class AbstractWebResource<T extends PersistenceEntity> {

     @RequestMapping(method = RequestMethod.POST, produces = "application/json")
     public ResponseEntity<T> createAction(@RequestBody T dataEntity, HttpSession session) {
        dataEntity = rule.save(dataEntity);

        if (dataEntity.hasErrors()) {
           return new ResponseEntity<T>(dataEntity, HttpStatus.BAD_REQUEST);
        }

        return new ResponseEntity<T>(dataEntity, HttpStatus.CREATED);
     }

     @RequestMapping(value = "/{id}", method = RequestMethod.PUT, produces = "application/json")
     public ResponseEntity<T> updateAction(@PathVariable("id") Integer id, @RequestBody T dataEntity, HttpSession session) { ... }
}

错误 POST e PUT

GRAVE:servlet [dispatcher] 的 Servlet.service() 在路径 [/app] 的上下文中抛出异常 [请求处理失败;嵌套异常是 java.lang.IllegalStateException:参数类型不匹配 处理程序方法详细信息: 控制器 [br.inf...web.resource.UserWebResource] 方法[public org.springframework.http.ResponseEntity br.inf...web.resource.AbstractWebResource.updateAction(java.lang.String,T,javax.servlet.http.HttpSession)]

【问题讨论】:

  • 展示你的 AbstractWebResource 实现
  • 已编辑@Cootri

标签: java spring spring-mvc


【解决方案1】:

好像编组框架有问题。

您不能在 Jackson 2.7 和 Spring 4.2 中使用泛型类型,您应该将 Jackson 依赖版本回滚到 2.6.6 或使用 Spring 4.3(当它发布时)。

source

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-06
    • 2020-11-14
    • 2018-08-07
    • 1970-01-01
    • 2014-12-15
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多