Java-клиент использует WebClient из загрузки Spring, отправляет несколько запросов POST вместо одногоJAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Java-клиент использует WebClient из загрузки Spring, отправляет несколько запросов POST вместо одного

Сообщение Гость »


Я разработал настольное приложение, в котором клиентская часть (пользовательский интерфейс) построена на javafx, а сервер — на Spring Boot. Для отправки запросов со стороны клиента я использовал WebClient, который иногда на медленных компьютерах отправляет несколько (от 2 до 20) запросов POST, хотя я намеревался отправить только один, в результате чего одна запись сохраняется в базе данных несколько раз, что абсурдно. Код используется для веб-клиента в следующем:

WebClient.builder() .baseUrl(базовый URL) .defaultHeader("Авторизация","Носитель"+jwt) .codecs(кодеки -> кодеки .defaultCodecs() .maxInMemorySize(МБ)) .build().post().uri("/some/url/") .body(Mono.just(объект),MyObject.class) .забрать() .onStatus(HttpStatus::isError, clientResponse -> Mono.error(new ClientRequestException ("ОШИБКА:" + clientResponse.statusCode()))) .bodyToMono(new ParameterizedTypeReference() {}) .retryWhen(Retry.backoff(2, Duration.of(2, ChronoUnit.СЕКУНДЫ)) .onRetryExhaustedThrow((retryBackoffSpec, повторить сигнал) -> новое ClientRequestException("НЕ ПОДКЛЮЧИТЬСЯ"))) .onErrorResume(ClientRequestException.class, ex -> { Platform.runLater(()-> ShowMessage.networkDown(таблица)); вернуть Mono.empty(); }).doOnSuccess(p->{ // показать сообщение об успехе!! }) .подписаться(); Я пытался прекратить хранение нескольких одинаковых записей в базе данных, установив уникальный столбец datetime в таблице базы данных, однако это неправильный способ решения этой проблемы.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»