为什么我得到406调用API返回" long"

时间:2017-10-07 04:04:59

标签: json rest spring-boot httprequest spring-json

我正在使用Spring Boot和JPA开发REST apis。其中一个端点使用JSON。

@RequestMapping(
        value = "/controller/",
        method = RequestMethod.POST,
        consumes = "application/json",
        produces = "text/plain")
    public long persistController(@RequestBody DoorController doorController) {
        return 10;  
    }

我简化了这个api中的逻辑只是出于调试目的。

实体类DoorController看起来像这样: 公共类DoorController实现Serializable {

private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "DOOR_CTRLR_ID")
private long id;

@Column(name = "MSG_ID")
private long messageID;

@Column(name = "CTRLR_SERL_NBR")
private String controllerSerialNumber;

@Column(name = "SAP_EQUIP_NBR")
private String sapEquipNumber;

@Column(name = "CTRLR_TYP")
private String controllerType;

@Column(name = "PREV_CTRLR_SERL_NBR")
private String prevControllerSerialNumber;

然后我启动了应用程序并使用Swagger-ui测试了端点。请求正文是以下JSON:

{
  "controllerSerialNumber": "x00001",
  "controllerType": "swing",
  "prevControllerSerialNumber": "",
  "sapEquipNumber": "",
}

我做了一些研究,看起来对于较旧的Spring,你需要明确地添加jackson依赖。但对于目前的Spring Boot,它已经包含在内。

服务器端没有错误。当我调试它并在控制器类的return 10;处放置一个断点时,在单步执行此语句后,它将重定向到类文件编辑器中的sun.reflect.NativeMethodAccessorImpl并显示source not found。这意味着什么,为什么我仍然得到406?

修改: 经过一些调试,我可能已经发现了问题。现在,如果我将返回类型从long更改为string或无效,它将不会给我406.所有数值数据类型都不起作用。已尝试intdouble

我已设置produces = "text/plain"。现在的问题是如何在rest API中返回long

0 个答案:

没有答案