diff --git a/axhub-tool-core/src/main/java/io/shinhanlife/axhub/biz/mcp/adapter/sender/HttpEimsSender.java b/axhub-tool-core/src/main/java/io/shinhanlife/axhub/biz/mcp/adapter/sender/HttpEimsSender.java index 848709d..2e517bb 100644 --- a/axhub-tool-core/src/main/java/io/shinhanlife/axhub/biz/mcp/adapter/sender/HttpEimsSender.java +++ b/axhub-tool-core/src/main/java/io/shinhanlife/axhub/biz/mcp/adapter/sender/HttpEimsSender.java @@ -40,7 +40,14 @@ public class HttpEimsSender implements EimsSender { this.glowProps = glowProps; // yml의 대내 MCI host, port, uri를 조합하여 EIMS 호출 주소 생성 this.eimsUrl = glowProps.getMci().getHost() + ":" + glowProps.getMci().getPort() + glowProps.getMci().getUri(); - + + /* + *********************************************** 중요 ************************************************** + this.restClient = RestClient.create(); + 보통 금융권(신한라이프 등 은행/보험사)의 내부 레거시 시스템이나 MCI(Message Channel Integration) 솔루션은 HTTP/2를 기본으로 지원하지 않는 경우가 훨씬 많습니다. + *********************************************** 중요 ************************************************** + */ + // HTTP/2 통신 시 Stream Cancelled(RST_STREAM) 에러 방지를 위해 HTTP/1.1 전용 Factory 사용 SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); factory.setConnectTimeout(3000); diff --git a/axhub-tool-core/src/main/java/io/shinhanlife/axhub/biz/mcp/adapter/sender/MciEimsSender.java b/axhub-tool-core/src/main/java/io/shinhanlife/axhub/biz/mcp/adapter/sender/MciEimsSender.java index f9511c4..2e4c6fa 100644 --- a/axhub-tool-core/src/main/java/io/shinhanlife/axhub/biz/mcp/adapter/sender/MciEimsSender.java +++ b/axhub-tool-core/src/main/java/io/shinhanlife/axhub/biz/mcp/adapter/sender/MciEimsSender.java @@ -6,6 +6,7 @@ import com.fasterxml.jackson.dataformat.xml.XmlMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.MediaType; +import org.springframework.http.client.SimpleClientHttpRequestFactory; import org.springframework.stereotype.Service; import org.springframework.util.StopWatch; import org.springframework.web.client.RestClient; @@ -38,6 +39,16 @@ public class MciEimsSender implements EimsSender { this.xmlMapper = xmlMapper; this.mciUrl = mciUrl; this.restClient = RestClient.create(); // 클라이언트 초기화 + + /* + *********************************************** 중요 ************************************************** + SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); + factory.setConnectTimeout(3000); + factory.setReadTimeout(5000); + this.restClient = RestClient.builder().requestFactory(factory).build(); + 보통 금융권(신한라이프 등 은행/보험사)의 내부 레거시 시스템이나 MCI(Message Channel Integration) 솔루션은 HTTP/2를 기본으로 지원하지 않는 경우가 훨씬 많습니다. + *********************************************** 중요 ************************************************** + */ } @Override diff --git a/axhub-tool-core/src/main/java/io/shinhanlife/axhub/biz/mcp/adapter/sender/MciStringEimsSender.java b/axhub-tool-core/src/main/java/io/shinhanlife/axhub/biz/mcp/adapter/sender/MciStringEimsSender.java index 342da8b..3f6b899 100644 --- a/axhub-tool-core/src/main/java/io/shinhanlife/axhub/biz/mcp/adapter/sender/MciStringEimsSender.java +++ b/axhub-tool-core/src/main/java/io/shinhanlife/axhub/biz/mcp/adapter/sender/MciStringEimsSender.java @@ -31,6 +31,16 @@ public class MciStringEimsSender implements EimsSender { public MciStringEimsSender(@Value("${eims.mcistring.url}") String mciUrl) { this.mciUrl = mciUrl; this.restClient = RestClient.create(); + /* + *********************************************** 중요 ************************************************** + SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); + factory.setConnectTimeout(3000); + factory.setReadTimeout(5000); + this.restClient = RestClient.builder().requestFactory(factory).build(); + 보통 금융권(신한라이프 등 은행/보험사)의 내부 레거시 시스템이나 MCI(Message Channel Integration) 솔루션은 HTTP/2를 기본으로 지원하지 않는 경우가 훨씬 많습니다. + *********************************************** 중요 ************************************************** + */ + } @Override