ElinkTransactionContext에 최초요청데이터 저장 및 가져다 쓰는 함수 추가
This commit is contained in:
@@ -5,6 +5,7 @@ import java.util.Properties;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import com.eactive.eai.common.TransactionContextKeys;
|
import com.eactive.eai.common.TransactionContextKeys;
|
||||||
|
import com.eactive.eai.common.context.ElinkTransactionContext;
|
||||||
import com.eactive.eai.common.util.*;
|
import com.eactive.eai.common.util.*;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
@@ -59,7 +60,7 @@ import org.json.simple.JSONObject;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
//import org.apache.commons.lang3.StringUtils;
|
//import org.apache.commons.lang3.StringUtils;
|
||||||
//import org.springframework.http.HttpStatus;
|
//import org.springframework.http.HttpStatus;
|
||||||
|
|
||||||
//import java.util.Calendar;
|
//import java.util.Calendar;
|
||||||
//import java.util.Properties;
|
//import java.util.Properties;
|
||||||
@@ -75,7 +76,7 @@ import java.util.Map;
|
|||||||
* - 응답 거래로깅
|
* - 응답 거래로깅
|
||||||
* 3. 주의사항
|
* 3. 주의사항
|
||||||
*
|
*
|
||||||
* @author :
|
* @author :
|
||||||
* @version : v 1.0.0
|
* @version : v 1.0.0
|
||||||
* @see :
|
* @see :
|
||||||
* @since :
|
* @since :
|
||||||
@@ -176,7 +177,7 @@ public class RequestProcessor extends RequestProcessorSupport {
|
|||||||
* @param prop 호출시 전달할 Property 값(추후 확장을 위해)
|
* @param prop 호출시 전달할 Property 값(추후 확장을 위해)
|
||||||
* @param msgRcvTm 메시지 수신시각
|
* @param msgRcvTm 메시지 수신시각
|
||||||
* @return Object
|
* @return Object
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
**/
|
**/
|
||||||
protected Object hookup(Object message, Properties prop, long msgRcvTm) throws Exception {
|
protected Object hookup(Object message, Properties prop, long msgRcvTm) throws Exception {
|
||||||
EAIMessage retEaiMsg = null;
|
EAIMessage retEaiMsg = null;
|
||||||
@@ -184,7 +185,7 @@ public class RequestProcessor extends RequestProcessorSupport {
|
|||||||
ProcessVO vo = setVO(prop, msgRcvTm);
|
ProcessVO vo = setVO(prop, msgRcvTm);
|
||||||
prop.setProperty(TransactionContextKeys.TRANSACTION_UUID, vo.getUuid());
|
prop.setProperty(TransactionContextKeys.TRANSACTION_UUID, vo.getUuid());
|
||||||
|
|
||||||
String inboundCharset = prop.getProperty(Keys.CHARSET_KEY_IN);
|
String inboundCharset = prop.getProperty(Keys.CHARSET_KEY_IN);
|
||||||
|
|
||||||
// Unknown Message 로깅시 표준메시지일 경우 원본 자체를 남기기 위해 변수로 저장한다.
|
// Unknown Message 로깅시 표준메시지일 경우 원본 자체를 남기기 위해 변수로 저장한다.
|
||||||
// logUnknownMessage 호출시 사용하도록 함
|
// logUnknownMessage 호출시 사용하도록 함
|
||||||
@@ -199,7 +200,7 @@ public class RequestProcessor extends RequestProcessorSupport {
|
|||||||
} catch (Exception e1) {
|
} catch (Exception e1) {
|
||||||
logger.error("deep copy error : " + e1.getMessage(), e1);
|
logger.error("deep copy error : " + e1.getMessage(), e1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. StandardMessage 생성
|
// 2. StandardMessage 생성
|
||||||
EAIServerManager eaiServerManager = EAIServerManager.getInstance();
|
EAIServerManager eaiServerManager = EAIServerManager.getInstance();
|
||||||
StandardMessage standardMessage = null;
|
StandardMessage standardMessage = null;
|
||||||
@@ -207,17 +208,17 @@ public class RequestProcessor extends RequestProcessorSupport {
|
|||||||
StandardReader reader = null;
|
StandardReader reader = null;
|
||||||
InterfaceMapper mapper = standardManager.getMapper();
|
InterfaceMapper mapper = standardManager.getMapper();
|
||||||
StandardMessage subMessage = null;
|
StandardMessage subMessage = null;
|
||||||
|
|
||||||
if(Keys.IF_STANDARD.equals(vo.getStdMsgTypeCode())) {
|
if(Keys.IF_STANDARD.equals(vo.getStdMsgTypeCode())) {
|
||||||
if (logger.isDebug()) logger.debug("RequestProcessor] Get Message from INPUT MESSAGE");
|
if (logger.isDebug()) logger.debug("RequestProcessor] Get Message from INPUT MESSAGE");
|
||||||
try {
|
try {
|
||||||
standardMessage = standardManager.getStandardMessage();
|
standardMessage = standardManager.getStandardMessage();
|
||||||
reader = standardManager.getReader(vo.getAdptrMsgType());
|
reader = standardManager.getReader(vo.getAdptrMsgType());
|
||||||
reader.parse(standardMessage, message);
|
reader.parse(standardMessage, message);
|
||||||
// 표준전문 파싱 후 어댑터의 charset을 설정한다.
|
// 표준전문 파싱 후 어댑터의 charset을 설정한다.
|
||||||
standardMessage.setBizDataCharset(inboundCharset);
|
standardMessage.setBizDataCharset(inboundCharset);
|
||||||
standardManager.getMessageCoordinator().coordinateAfterParsing(standardMessage, vo, prop);
|
standardManager.getMessageCoordinator().coordinateAfterParsing(standardMessage, vo, prop);
|
||||||
|
|
||||||
} catch(Exception e) {
|
} catch(Exception e) {
|
||||||
vo.setRspErrorCode("RECEAIIRP008");
|
vo.setRspErrorCode("RECEAIIRP008");
|
||||||
vo.setRspErrorMsg(ExceptionUtil.make(e, vo.getRspErrorCode(), new String[]{ e.getMessage()}));
|
vo.setRspErrorMsg(ExceptionUtil.make(e, vo.getRspErrorCode(), new String[]{ e.getMessage()}));
|
||||||
@@ -226,7 +227,7 @@ public class RequestProcessor extends RequestProcessorSupport {
|
|||||||
logUnknownMessage(vo,orgMessage);
|
logUnknownMessage(vo,orgMessage);
|
||||||
throw new RequestProcessorException(vo.getRspErrorMsg());
|
throw new RequestProcessorException(vo.getRspErrorMsg());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
try {
|
try {
|
||||||
if(eaiServerManager.isTASEnabledEAIServer() && Keys.TESTMASTER_TAS.equals(vo.getTestMasterYn())) { //비표준 시뮬레이터
|
if(eaiServerManager.isTASEnabledEAIServer() && Keys.TESTMASTER_TAS.equals(vo.getTestMasterYn())) { //비표준 시뮬레이터
|
||||||
@@ -269,7 +270,7 @@ public class RequestProcessor extends RequestProcessorSupport {
|
|||||||
else {
|
else {
|
||||||
throw ex;
|
throw ex;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (logger.isInfo()) logger.info("RequestProcessor] The RequestAction is null in Adapter properties. - "+vo.getAdapterName());
|
if (logger.isInfo()) logger.info("RequestProcessor] The RequestAction is null in Adapter properties. - "+vo.getAdapterName());
|
||||||
}
|
}
|
||||||
@@ -290,7 +291,7 @@ public class RequestProcessor extends RequestProcessorSupport {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(Keys.IF_SUBSTANDARD.equals(vo.getStdMsgTypeCode())) {
|
if(Keys.IF_SUBSTANDARD.equals(vo.getStdMsgTypeCode())) {
|
||||||
if (logger.isDebug()) logger.debug("RequestProcessor] Mapping StandardMessage from INPUT MESSAGE - SUBSTANDARD");
|
if (logger.isDebug()) logger.debug("RequestProcessor] Mapping StandardMessage from INPUT MESSAGE - SUBSTANDARD");
|
||||||
try {
|
try {
|
||||||
@@ -301,7 +302,7 @@ public class RequestProcessor extends RequestProcessorSupport {
|
|||||||
subMessage = versionMapper.parseSub(vo.getAdptrMsgType(), message);
|
subMessage = versionMapper.parseSub(vo.getAdptrMsgType(), message);
|
||||||
subMessage.setBizDataCharset(inboundCharset);
|
subMessage.setBizDataCharset(inboundCharset);
|
||||||
standardMessage = versionMapper.mapFromSub(subMessage, standardMessage);
|
standardMessage = versionMapper.mapFromSub(subMessage, standardMessage);
|
||||||
|
|
||||||
// 변경된 값이 있을 수 있으므로 재처리.
|
// 변경된 값이 있을 수 있으므로 재처리.
|
||||||
standardManager.getMessageCoordinator().coordinateAfterParsing(standardMessage, vo, prop);
|
standardManager.getMessageCoordinator().coordinateAfterParsing(standardMessage, vo, prop);
|
||||||
if(logger.isDebug() && standardMessage !=null) {
|
if(logger.isDebug() && standardMessage !=null) {
|
||||||
@@ -350,9 +351,9 @@ public class RequestProcessor extends RequestProcessorSupport {
|
|||||||
String guid = mapper.getGuid(standardMessage);
|
String guid = mapper.getGuid(standardMessage);
|
||||||
String guidSeq = mapper.getGuidSeq(standardMessage);
|
String guidSeq = mapper.getGuidSeq(standardMessage);
|
||||||
String returnType = mapper.getSendRecvDivision(standardMessage); // S|R
|
String returnType = mapper.getSendRecvDivision(standardMessage); // S|R
|
||||||
|
|
||||||
String receivedBizData = standardMessage.getBizData();
|
String receivedBizData = standardMessage.getBizData();
|
||||||
|
|
||||||
vo.setEaiSvcCd(eaiSvcCd);
|
vo.setEaiSvcCd(eaiSvcCd);
|
||||||
if (StringUtils.isBlank(eaiSvcCd)) {
|
if (StringUtils.isBlank(eaiSvcCd)) {
|
||||||
vo.setRspErrorCode("RECEAIIRP009");
|
vo.setRspErrorCode("RECEAIIRP009");
|
||||||
@@ -383,7 +384,7 @@ public class RequestProcessor extends RequestProcessorSupport {
|
|||||||
return getInboundErrorResponse(prop, standardMessage, mapper, vo.getRspErrorCode(), vo.getRspErrorMsg(), inboundCharset);
|
return getInboundErrorResponse(prop, standardMessage, mapper, vo.getRspErrorCode(), vo.getRspErrorMsg(), inboundCharset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 채널분류코드별로 GUID 중복체크
|
// 채널분류코드별로 GUID 중복체크
|
||||||
if (eaiServerManager.isMCI() && STDMessageKeys.SEND_RECV_CD_SEND.equals(mapper.getSendRecvDivision(standardMessage))
|
if (eaiServerManager.isMCI() && STDMessageKeys.SEND_RECV_CD_SEND.equals(mapper.getSendRecvDivision(standardMessage))
|
||||||
&& PropManager.getInstance().isContainProperties("DUPLICATION_GUID") ) {
|
&& PropManager.getInstance().isContainProperties("DUPLICATION_GUID") ) {
|
||||||
@@ -414,7 +415,11 @@ public class RequestProcessor extends RequestProcessorSupport {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
prop.setProperty(TransactionContextKeys.GUID, guid);
|
prop.setProperty(TransactionContextKeys.GUID, guid);
|
||||||
|
|
||||||
|
// INBOUND MESSAGE 스레드 로컬에 저장
|
||||||
|
String bizData = standardMessage.getBizData();
|
||||||
|
ElinkTransactionContext.setRequestBizData(bizData);
|
||||||
|
|
||||||
// INBOUND_HEADER 가 NULL인 경우는 HTTP가 아닌것으로 간주함.
|
// INBOUND_HEADER 가 NULL인 경우는 HTTP가 아닌것으로 간주함.
|
||||||
if(prop.get(HttpClientAdapterServiceKey.INBOUND_HEADER) != null) {
|
if(prop.get(HttpClientAdapterServiceKey.INBOUND_HEADER) != null) {
|
||||||
HttpAdapterExtraLogUtil.insertHttpAdapterExtraLog(vo.getUuid(), 100,
|
HttpAdapterExtraLogUtil.insertHttpAdapterExtraLog(vo.getUuid(), 100,
|
||||||
|
|||||||
Reference in New Issue
Block a user