diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/minervanet/ErrorReport.java b/rest-api/src/main/java/lcsb/mapviewer/api/minervanet/ErrorReport.java index f03a33c9fe55bed14399fcb470dbb5d1d7fafcc3..243627ae13df982601d17e0b54b8b8b057505268 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/minervanet/ErrorReport.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/minervanet/ErrorReport.java @@ -1,14 +1,12 @@ package lcsb.mapviewer.api.minervanet; -import java.time.Instant; - public class ErrorReport { private String url; private String login; private String email; private String browser; - private Instant timestamp; + private String timestamp; private String stacktrace; private String version; private String comment; @@ -45,11 +43,11 @@ public class ErrorReport { this.browser = browser; } - public Instant getTimestamp() { + public String getTimestamp() { return timestamp; } - public void setTimestamp(Instant timestamp) { + public void setTimestamp(String timestamp) { this.timestamp = timestamp; } diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/minervanet/MinervaNetController.java b/rest-api/src/main/java/lcsb/mapviewer/api/minervanet/MinervaNetController.java index 20b8563dc38d60cbf1b2b07936de0d09be01fb62..6b051bac77144b3eeb16dbba49307f70532ae1b6 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/minervanet/MinervaNetController.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/minervanet/MinervaNetController.java @@ -4,10 +4,15 @@ import com.fasterxml.jackson.databind.ObjectMapper; import lcsb.mapviewer.common.Configuration; import lcsb.mapviewer.model.user.ConfigurationElementType; import lcsb.mapviewer.services.interfaces.IConfigurationService; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.ContentType; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; +import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -17,6 +22,8 @@ import java.io.IOException; @RequestMapping("/minervanet") public class MinervaNetController { + private Logger logger = Logger.getLogger(MinervaNetController.class); + private IConfigurationService configurationService; @Autowired @@ -33,12 +40,18 @@ public class MinervaNetController { String jsonReport = mapper.writeValueAsString(report); String server = configurationService.getValue(ConfigurationElementType.MINERVANET_URL).getValue(); - HttpPost httpPost = new HttpPost(server); - httpPost.setHeader("Content-Type", "application/json"); - httpPost.setEntity(new StringEntity(jsonReport)); - try (CloseableHttpClient httpClient = HttpClients.createDefault()) { - httpClient.execute(httpPost); + try (CloseableHttpClient client = HttpClientBuilder.create().build()) { + StringEntity requestEntity = new StringEntity(jsonReport, ContentType.APPLICATION_JSON); + HttpPost post = new HttpPost(server); + post.setEntity(requestEntity); + try (CloseableHttpResponse response = client.execute(post)) { + HttpEntity responseEntity = response.getEntity(); + String responseBody = EntityUtils.toString(responseEntity, "UTF-8"); + if (response.getStatusLine().getStatusCode() != 200) { + logger.error("Could not submit report to MinervaNet. Reason: " + responseBody); + } + } } }