本文介紹了在Spring Webflow中阻止讀取5000毫秒的超時的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我為Handler(Spring Webflow)編寫了一個測試
@Test
public void checkServicesHandlerTest() {
Request request = new Request();
request.setMsisdn("ffdfdfd");
this.testClient.post().uri("/check")
.body(Mono.just(request), Request.class)
.exchange().expectStatus().isOk();
}
但在結果中我出錯。
Timeout on blocking read for 5000 MILLISECONDS
處理程序很簡單:
public Mono<ServerResponse> check(ServerRequest request) {
Request request = request.bodyToMono(Request.class).block();
問題出在哪里?如果我向服務器發送直接請求,則一切正常。
推薦答案
我在運行集成測試時看到了類似的問題和異常,其中一些測試聚合了來自具有數據庫訪問權限的多個其他服務的響應。因此,在運行集成測試時,我們會間歇性地看到這個問題。我們在Gradle上使用了Spring Boot 2.0.0.RC1和JUnit5。我這樣做是為了解決這個問題。關鍵是改變Web客戶端,最壞的情況是響應超時30秒。
@Autowired
private WebTestClient webTestClient;
@BeforeEach
public void setUp() {
webTestClient = webTestClient.mutate()
.responseTimeout(Duration.ofMillis(30000))
.build();
}
這篇關于在Spring Webflow中阻止讀取5000毫秒的超時的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,