0

我的 REST 控制器有问题。如果我使用 RequestBody (json) 发送请求,则某些属性不会到达控制器,尽管它们是在模型中发送和定义的。

我可以发现它看起来像是从本地 Java Web 服务器使用旧版本的文件。当我在 Constructor 更改 System.out.println 值时,仍然输出旧值。

public RestController_ApiKey_2_0() {
    System.out.println("RestController_ApiKey_2_0 init");
}

我尝试了以下无能为力的事情:

  1. 删除了 java web 服务器并进行了新安装
  2. 清理项目并再次启动服务器
  3. 项目的干净安装

有人有想法吗?

4

1 回答 1

0

请提供更多代码,如何声明控制器以及它可以采用哪些参数。还显示一个示例请求。这是一个简单控制器的示例:

一个模型

public class CustomRequestBody {
    private String fieldA;
    private String fieldB;

    public String getFieldA() {
        return fieldA;
    }

    public void setFieldA(final String fieldA) {
        this.fieldA = fieldA;
    }

    public String getFieldB() {
        return fieldB;
    }

    public void setFieldB(final String fieldB) {
        this.fieldB = fieldB;
    }
}

控制器:

@Controller
public class MyController {
    @RequestMapping(value = "/some-path", method = RequestMethod.POST)
    @ResponseStatus(HttpStatus.ACCEPTED)
    public ResponseEntity handleSomePath(@RequestBody final CustomRequestBody body, final HttpServletRequest request) {
        // Do the job.
    }  

请求将是:

HTTP POST http://some.server.com/some-path
{
    "fieldA":"first value",
    "fieldB":"second value"
} 

在此处阅读更多 Spring 文档

于 2016-02-23T11:10:40.130 回答