Java spring REST控制器:不完整的请求正文

时间:2016-02-23 10:47:31

标签: java spring rest hana hana-cloud-platform

我的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 个答案:

答案 0 :(得分: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文档here

的更多内容