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