我目前在开发基于REST的应用程序时遇到了问题。通常帮助自己使用谷歌,这次一点支持将非常有帮助。
我发送的REST帖子请求显然与方法签名不匹配。现在我想调试我发送的请求。如何获取发送的请求以检查数据?
我做什么?在客户端,该方法(这不是生产级代码btw。):
public boolean send() {
Client client = ClientBuilder.newBuilder().build();
WebTarget target = client.target(
"http://localhost:8080/backend_war_exploded/user/register"
);
// this = class Registration
Entity entity = Entity.entity(this, MediaType.APPLICATION_JSON);
try {
Registration registration = target
.request()
.post(
entity,
Registration.class
);
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
在服务器端:
@RequestMapping(
value = "/register",
method = RequestMethod.POST,
headers = "Accept=application/json",
produces = "application/json"
)
public ResponseEntity<SystemUser> create(
@RequestBody SystemUser body
) {
ResponseEntity<SystemUser> responseEntity = new ResponseEntity<>(
systemUserService.create(body), HttpStatus.CREATED
);
return responseEntity;
}
在我的日志文件中,我最终得到:
ERROR [io.undertow.request] (default task-30) UT005023: Exception handling request to
/backend_war_exploded/user/register:
org.springframework.web.util.NestedServletException: Handler processing failed;
nested exception is java.lang.NoSuchMethodError:
org.springframework.core.MethodParameter.getContainingClass()Ljava/lang/Class;
我确实有一些工作GET请求,因此设置通常有效。我希望我能提供所有必要但不太多的代码。如果缺少任何信息,请告诉我,我会添加它。有用的是要么告诉我,我对REST实现的理解是错误的,要么告诉我,我怎么能找出我理解错误的内容。
编辑: 好的,感谢Jk1,我发现我有重复的库,我按照[1]中的描述进行了修复。现在我遇到BadRequestException,所以我仍然想调试我的REST服务请求。关于我如何调试它的任何想法?
[1] spring-data-jpa 1.6 requires spring framework 3 libraries, is that true, or what did I miss?