我正在使用MVC Spring和Jackson(实际上是Spring Boot)。将Java bean映射到JSON映射的工作正常,除非我尝试使用名称为http://my-service/file-info/file.txt
的.txt或.t访问资源。 Spring将此记录为错误并返回406 - Not Acceptable。
但是,当我将其更改为http://my-service/file-info/file.txta
时,它会起作用并返回JSON。
我认为由于某种原因,资源以.t和.txt结尾,尝试将其转换为文本格式,并且失败并出现错误。
如何关闭Spring / Jackson的行为?
这是我简单的MVC Spring方法:
@RequestMapping(value = "file-info/{file}", method = RequestMethod.GET)
public ResponseEntity<FileInfo> getFileInfo() {
FileInfo info = new FileInfo();
info.setName("file_name");
return new ResponseEntity<>(info, HttpStatus.OK);
}
这是REST实体类:
public class FileInfo {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
答案 0 :(得分:0)
您应该能够像这样使用它:
@RequestMapping(value = "file-info/{file}.{extension}", method = RequestMethod.GET)
public ResponseEntity<FileInfo> getFileInfo() {
FileInfo info = new FileInfo();
info.setName("file");
info.setExtension("extension"); // or something like that
return new ResponseEntity<>(info, HttpStatus.OK);
}
答案 1 :(得分:0)