我有一個無法通過的測試用例:ContactDTO contactDTO = generateContactDTO();HttpEntity<ContactDTO> request = new HttpEntity<>(contactDTO, headers);ResponseEntity<Response> response = restTemplate.exchange(generateBaseUrl() + "/contacts", HttpMethod.POST, request, Response.class);assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);這是我的 ContactDTO 類:public class ContactDTO { @NotNull @Size(min = 2, max = 100) private String firstName; @NotNull @Size(min = 2, max = 100) private String lastName; @NotNull @Size(min = 3, max = 100) private String email; @NotNull @Size(min = 3, max = 50) private String phoneNumber; @JsonCreator(mode = JsonCreator.Mode.PROPERTIES) ContactDTO(@JsonProperty("firstName") @NotNull @Size(min = 2, max = 100) String firstName, @JsonProperty("lastName") @NotNull @Size(min = 2, max = 100) String lastName, @JsonProperty("email") @NotNull @Size(min = 3, max = 50) String email, @JsonProperty("phoneNumber") @NotNull @Size(min = 3, max = 50) String phoneNumber) { this.firstName = firstName; this.lastName = lastName; this.email = email; this.phoneNumber = phoneNumber; } String getFirstName() { return firstName; } void setFirstName(String firstName) { this.firstName = firstName; } String getLastName() { return lastName; } void setLastName(String lastName) { this.lastName = lastName; } public String getEmail() { return email; } private void setEmail(String email) { this.email = email; } String getPhoneNumber() { return phoneNumber; } private void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; }}當我調試它時,我發現所有字段在發送到控制器之前都已填充在 contactDTO 中。但是,在控制器處,僅填充電子郵件字段,并且會導致 HTTP 錯誤請求。PS:我使用Spring Boot 2.1.7.RELEASE
1 回答

叮當貓咪
TA貢獻1776條經驗 獲得超12個贊
由于沒有公共訪問器,Jackson 無法序列化我的 DTO。因此,我將其添加到 DTO 對象的頂部:
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
添加回答
舉報
0/150
提交
取消