为什么Spring API在同一请求中返回2个响应?

时间:2020-10-08 05:16:38

标签: json spring spring-boot

这是过去两天开始的事情。据我的团队所知,我们尚未进行任何可能导致此更改的更改。

我的控制器

@RestController
@Log4j2
@Api(value = "RegistrationController")
public class RegistrationController {

    @PostMapping("/edit-registration")
    public JsonResponse editRegistration(@Valid @RequestBody final RegistrationDTO registrationDTO) {
        log.info("Request received to edit registration");
        return JsonResponse.builder().httpStatus(HttpStatus.OK)
                .data(this.RegistrationService.updateRegistration(registrationDTO)).build();
    }
}

JsonResponse是一个自定义类,该类实现Serializable来构造Json响应。

我的服务

@Service
@Log4j2
public class RegistrationService implements IRegistrationService {

    @Override
    public RegistrationDTO updateRegistration(@Valid final RegistrationDTO registrationDTO) {
        
        // business logic to verify and update registration
        
        return registrationDTO;
    }
}

直到最后两天,该API都可以正常工作,但是随后我们在SIT测试期间开始获得此响应。只是针对特定的API才发生这种情况,因此我可以放心地使用自定义JsonResponse排除问题,该JsonResponse被我所有其他API所使用,而他们没有得到。

double response

第一个响应返回状态200和期望的数据,但是第二个响应奇怪地附加在下面。它甚至没有与第一个一起正确格式化以形成Json数组。这导致我的前端变得笨拙,因为它无法正确解析返回的对象。

跟踪日志,我看到一个StackOverflowException,我们怀疑是导致第二个响应返回状态500(我们正在努力解决)的原因。我们无法弄清楚的是为什么首先还要有第二个响应。

以前有没有人遇到过类似的事情?

0 个答案:

没有答案
相关问题