gpt4 book ai didi

java - Servlet 上的 Maven 测试收到 IllegalStatException : Cannot reset buffer - response already committed

转载 作者:行者123 更新时间:2023-12-02 08:29:35 24 4
gpt4 key购买 nike

在我的 Maven 构建的测试阶段,我在一个 @test 方法中保存了以下代码:

        request.clearAttributes();
response.reset();
String story_uuid = qit.getQI().getStory_uuid();
assertNotNull(story);
request.setParameter("story_uuid", story_uuid);
request.setParameter("activity", "get");
queue.doPost(request, response);
assertEquals(response.getErrorMessage(), HttpServletResponse.SC_OK, response.getStatus());


request.clearAttributes();
response.reset(); //**THIS RESET HERE**//
request.setParameter("story", story_uuid);
request.setParameter("activity", "revert");
queue.doPost(request, response);
assertEquals(response.getErrorMessage(), HttpServletResponse.SC_OK, response.getStatus());

带有 //**THIS RESET HERE**//response.reset() 行会导致以下错误:

java.lang.IllegalStateException: Cannot reset buffer - response is already committed

我不应该使用一种方法来多次调用我的 servlet 吗?

最佳答案

reset() 仅在响应尚未提交时才起作用。它基本上清除了输出缓冲区。您不能对单个请求发送多个响应。这完全违反了HTTP规范。对于客户端发送的每个请求,服务器只能发回一个完整的响应。当响应被提交后,你就无法返回了。如果您想发回新的响应,那么您需要让客户端触发一个全新的请求,以便您可以发回新的响应。

关于java - Servlet 上的 Maven 测试收到 IllegalStatException : Cannot reset buffer - response already committed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3761039/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com