我有一个带有帖子请求的资源,其中包含一个可以吸引用户成员的正文
@PostMapping
public void post(@RequestBody RestUserDTO restUserDTO) {
try {
registrationService.doRegistration(restUserDTO);
} catch (BadEmailException | PasswordIsNotSecureException | BadUsernameException exception) {
throw new ResponseStatusException(
HttpStatus.BAD_REQUEST, exception.getMessage(), exception);
}
}
Rest user DTO is a internal class that looks like this
package com.wout.webresources.register;
import com.fasterxml.jackson.annotation.JsonProperty;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
@XmlType(name ="restUser" ,propOrder = {"firstName,lastName, userName,password, setPasswordConfirmation,email"})
public class RestUserDTO {
@JsonProperty(value = "username")
String username;
@JsonProperty(value = "password")
String password;
@JsonProperty(value = "passwordConfirmation")
String passwordConfirmation;
@JsonProperty(value = "firstName")
String firstName;
@JsonProperty(value = "lastName")
String lastName;
@JsonProperty(value = "email")
String email;
@Override
public String toString() {
return super.toString();
}
public RestUserDTO() {
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public String getEmail() {
return email;
}
public String getPassword() {
return password;
}
public String getUsername() {
return username;
}
public String getPasswordConfirmation() {
return passwordConfirmation;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public void setPasswordConfirmation(String passwordConfirmation) {
this.passwordConfirmation = passwordConfirmation;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public void setEmail(String email) {
this.email = email;
}
}
此外,我有一个打字稿接口,以便在两个地方使用相同的成员
singUp(){
const _restUser:RestUserDTO= {}
_restUser.username="admin";
_restUser.password="password";
_restUser.email = "email";
_restUser.firstName = "firstName";
_restUser.lastName = "lastName";
_restUser.passwordConfirmation = "passwordConfirmation"
this._service.singUp(_restUser)
.subscribe(data =>console.log(data));
}
我从邮递员和浏览器发出请求
但不知何故,来自服务器的对象的所有字段都为空
为什么会出现这个问题,我该如何解决
谢谢!
答案 0 :(得分:0)
将端点 URI 添加到 @PostMapping 可能会有所帮助。我建议您从 IDE 本地调试/运行 Spring Boot 应用程序,设置断点,然后通过 curl 发送测试请求。这应该会引导您找到根本原因。
答案 1 :(得分:0)
大家好,同时发现这是由我的 Ts 类引起的,请求类似于 {RestUser:{ 用户名:用户名, 密码:密码....}} 必须非常小心请求的结构恰好是 1:1 并使用公共 setter 和 getter 谢谢