From 5ee2fdd40732aa8eca29e89b14fa5238385868e8 Mon Sep 17 00:00:00 2001 From: Christof Rabensteiner Date: Tue, 16 Apr 2019 11:49:56 +0200 Subject: Store incoming delivery request on redis server - Connect to Redis server and implement RedisRepository - Add redis dependencies (spring-boot-starter, jedis, apache commons io). Latter dependencies are apparently needed and not included in the sprint-boot-starter; See https://github.com/spring-projects/spring-boot/issues/5718 and https://www.concretepage.com/questions/599 - Connect DeliveryRequestHandler to RedisRepository - Rewrote Marshalling: replace JaxbContext with spring-oxm JaxbMarshaller - Catch and log all exceptions in App2MZSService; Former: certain exceptions would go unnoticed, e.g. ConnectionRefused --- src/main/java/at/gv/egiz/moazs/App2MzsService.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/main/java/at/gv/egiz/moazs/App2MzsService.java') diff --git a/src/main/java/at/gv/egiz/moazs/App2MzsService.java b/src/main/java/at/gv/egiz/moazs/App2MzsService.java index 2f06f7b..f8c00fc 100644 --- a/src/main/java/at/gv/egiz/moazs/App2MzsService.java +++ b/src/main/java/at/gv/egiz/moazs/App2MzsService.java @@ -2,6 +2,8 @@ package at.gv.egiz.moazs; import at.gv.e_government.reference.namespace.zustellung.mzs.app2mzs.App2MzsPortType; import at.gv.e_government.reference.namespace.zustellung.mzs.app2mzs_.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -16,6 +18,8 @@ import static java.util.concurrent.CompletableFuture.supplyAsync; @Service public class App2MzsService implements App2MzsPortType { + private static final Logger logger = LoggerFactory.getLogger(App2MzsService.class); + //TODO move timeout to config private final int timeoutForAnwser = 10; private final String MZSTNS = "http://reference.e-government.gv.at/namespace/zustellung/mzs/app2mzs#"; @@ -40,14 +44,16 @@ public class App2MzsService implements App2MzsPortType { try { return future.get(timeoutForAnwser, TimeUnit.SECONDS); - - } catch (InterruptedException | ExecutionException e) { - return generateErrorResponse(); - } catch (TimeoutException e) { future.thenAccept(appClient::sendNotification); + logger.warn("Answer Timed Out", e); return generatePartialSuccessResponse(deliveryRequest); + + } catch (Exception e ) { + logger.error("Could not deliver request.", e); + return generateErrorResponse(); } + } private DeliveryResponseType generatePartialSuccessResponse(DeliveryRequestType deliveryRequest) { -- cgit v1.2.3