diff options
author | Vitaly Takmazov | 2018-11-01 11:45:51 +0300 |
---|---|---|
committer | Vitaly Takmazov | 2018-11-01 11:45:51 +0300 |
commit | 41b0b0b1f695830681ef8f57f0974c022de241c1 (patch) | |
tree | 8e2880cbd35039aef46a85834c462cab8a64f363 /juick-server/src | |
parent | b835d8b7e5f4a39a5d4d38f42ae260720babc7b8 (diff) |
custom http error handler
Diffstat (limited to 'juick-server/src')
-rw-r--r-- | juick-server/src/main/java/com/juick/server/ActivityPubManager.java | 12 | ||||
-rw-r--r-- | juick-server/src/main/java/com/juick/server/configuration/ActivityPubClientConfig.java | 2 |
2 files changed, 14 insertions, 0 deletions
diff --git a/juick-server/src/main/java/com/juick/server/ActivityPubManager.java b/juick-server/src/main/java/com/juick/server/ActivityPubManager.java index 41dd52eb..692d1107 100644 --- a/juick-server/src/main/java/com/juick/server/ActivityPubManager.java +++ b/juick-server/src/main/java/com/juick/server/ActivityPubManager.java @@ -17,11 +17,14 @@ import com.juick.service.component.*; import com.juick.util.MessageUtils; import com.mitchellbosecke.pebble.PebbleEngine; import com.mitchellbosecke.pebble.template.PebbleTemplate; +import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.client.ClientHttpResponse; import org.springframework.stereotype.Component; +import org.springframework.web.client.DefaultResponseErrorHandler; import org.springframework.web.util.UriComponentsBuilder; import javax.annotation.Nonnull; @@ -31,6 +34,7 @@ import java.io.IOException; import java.io.StringWriter; import java.io.Writer; import java.net.URI; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; @@ -313,4 +317,12 @@ public class ActivityPubManager implements ActivityListener, NotificationListene } }); } + + public static class ErrorHandler extends DefaultResponseErrorHandler { + @Override + public void handleError(ClientHttpResponse response) throws IOException { + logger.warn("HTTP ERROR {} {} : {}", response.getStatusCode().value(), + response.getStatusText(), IOUtils.toString(response.getBody(), StandardCharsets.UTF_8)); + } + } } diff --git a/juick-server/src/main/java/com/juick/server/configuration/ActivityPubClientConfig.java b/juick-server/src/main/java/com/juick/server/configuration/ActivityPubClientConfig.java index b7762221..37afc1d8 100644 --- a/juick-server/src/main/java/com/juick/server/configuration/ActivityPubClientConfig.java +++ b/juick-server/src/main/java/com/juick/server/configuration/ActivityPubClientConfig.java @@ -1,5 +1,6 @@ package com.juick.server.configuration; +import com.juick.server.ActivityPubManager; import org.apache.http.client.HttpClient; import org.apache.http.impl.client.cache.CacheConfig; import org.apache.http.impl.client.cache.CachingHttpClientBuilder; @@ -18,6 +19,7 @@ public class ActivityPubClientConfig { RestTemplate restTemplate = new RestTemplate(requestFactory); // BufferingClientHttpRequestFactory allows us to read the response more than once - Necessary for debugging. restTemplate.setRequestFactory(new BufferingClientHttpRequestFactory(new HttpComponentsClientHttpRequestFactory(httpClient()))); + restTemplate.setErrorHandler(new ActivityPubManager.ErrorHandler()); return restTemplate; } @Bean |