From 9aa05b83e2c028a222ed228f3145fb2c99480d17 Mon Sep 17 00:00:00 2001
From: Anton Romanov
Date: Wed, 1 Feb 2023 14:36:07 +0400
Subject: [PATCH] #80 -- fix forecasting
---
.../ru/ulstu/extractor/http/HttpService.java | 23 +++++++++------
.../ts/service/TimeSeriesService.java | 4 ++-
src/main/resources/application.properties | 3 ++
src/main/resources/templates/error.html | 28 +++++++++++++------
4 files changed, 39 insertions(+), 19 deletions(-)
diff --git a/src/main/java/ru/ulstu/extractor/http/HttpService.java b/src/main/java/ru/ulstu/extractor/http/HttpService.java
index 9a5d660..6d79315 100644
--- a/src/main/java/ru/ulstu/extractor/http/HttpService.java
+++ b/src/main/java/ru/ulstu/extractor/http/HttpService.java
@@ -21,15 +21,20 @@ public class HttpService {
public JSONObject post(String url, JSONObject postData) {
log.debug("Service call: {}", url);
- JSONObject response = new JSONObject(Optional.ofNullable(client
- .post()
- .uri(url)
- .contentType(MediaType.APPLICATION_JSON)
- .body(BodyInserters.fromValue(postData.toString()))
- .accept(MediaType.APPLICATION_JSON)
- .retrieve()
- .bodyToMono(String.class)
- .block()).orElse("{response:\"empty\"}"));
+ JSONObject response = null;
+ try {
+ response = new JSONObject(Optional.ofNullable(client
+ .post()
+ .uri(url)
+ .contentType(MediaType.APPLICATION_JSON)
+ .body(BodyInserters.fromValue(postData.toString()))
+ .accept(MediaType.APPLICATION_JSON)
+ .retrieve()
+ .bodyToMono(String.class)
+ .toFuture().get()).orElse("{response:\"empty\"}"));
+ } catch (Exception e) {
+ return new JSONObject("{response:\"empty\"}");
+ }
log.debug("Service response: {}", response);
return response;
}
diff --git a/src/main/java/ru/ulstu/extractor/ts/service/TimeSeriesService.java b/src/main/java/ru/ulstu/extractor/ts/service/TimeSeriesService.java
index a901e84..3f8f6cd 100644
--- a/src/main/java/ru/ulstu/extractor/ts/service/TimeSeriesService.java
+++ b/src/main/java/ru/ulstu/extractor/ts/service/TimeSeriesService.java
@@ -119,7 +119,9 @@ public class TimeSeriesService {
if (ts != null && ts.getValues().size() > 5) {
JSONObject response = httpService.post(TIME_SERIES_TENDENCY_URL, new JSONObject(new SmoothingTimeSeries(ts)));
LOG.debug("Успешно отправлен на сервис сглаживания");
- response.get("timeSeries");
+ if (response.has("response") && response.getString("response").equals("empty")) {
+ return 0.0;
+ }
JSONArray jsonArray = response.getJSONObject("timeSeries").getJSONArray("values");
return jsonArray.getJSONObject(jsonArray.length() - 1).getDouble("value");
}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index f9422ed..193890c 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -11,6 +11,9 @@ logging.level.sun.rmi.transport=off
logging.level.javax.management.remote.rmi=off
logging.level.java.rmi.server=off
extractor.custom-projects-dir=
+server.error.include-stacktrace=always
+server.error.include-exception=true
+server.error.include-message=always
# Thymeleaf Settings
spring.thymeleaf.cache=false
messages.basename.path=messages_en.properties
diff --git a/src/main/resources/templates/error.html b/src/main/resources/templates/error.html
index ce4f465..47f0e37 100644
--- a/src/main/resources/templates/error.html
+++ b/src/main/resources/templates/error.html
@@ -32,16 +32,26 @@
-
${url}
-
-
- ${exception.message}
+
+ Status
+
+
+
+ Error
+
+
+
+ Message
+
+
+
+ Exception
+
+
+
+ Stacktrace
+
-