diff --git a/src/main/java/com/eactive/eai/outbound/SocketProcess.java b/src/main/java/com/eactive/eai/outbound/SocketProcess.java index d3912f7..e7e8d9b 100644 --- a/src/main/java/com/eactive/eai/outbound/SocketProcess.java +++ b/src/main/java/com/eactive/eai/outbound/SocketProcess.java @@ -32,9 +32,11 @@ import com.eactive.eai.control.SocketSender; import com.eactive.eai.control.Transform; import com.eactive.eai.env.ElinkConfig; import com.eactive.eai.inbound.processor.Processor; +import com.eactive.eai.message.StandardItem; import com.eactive.eai.message.StandardMessage; import com.eactive.eai.message.manager.StandardMessageManager; import com.eactive.eai.message.parser.StandardReader; +import com.eactive.eai.message.service.InterfaceMapper; import com.ext.eai.common.stdmessage.STDMessageKeys; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; @@ -458,8 +460,31 @@ public class SocketProcess extends DefaultProcess { String txTmotTktm = prop.getProperty("timeout", "50"); setTimeout(this.reqEaiMsg, StringUtil.stringFormat(txTmotTktm, true, '0', 3)); + String returnType = getReturnType(this.reqEaiMsg); + + if( STDMessageKeys.SEND_RECV_CD_RECV.equals(returnType) ) { //소켓이고 비동기Outbound인데, 표준메세지 요청구분가 R은 A-S 패턴의 응답 일떄만, 아래 로직(메세지부를 제거하고 보냄.) + + StandardMessage standardMessage = this.reqEaiMsg.getStandardMessage(); + + final String MESSAGE_PART = "Message"; + final String MESSAGE_PART_HEADER_PART = "Message.Msg_Header"; + final String MESSAGE_PART_BODY_PART = "Message.Msg_Body"; + + if (!com.eactive.eai.adapter.Keys.IF_STANDARD.equals(this.adptrMsgPtrnCd)) { + + StandardItem messagePart = standardMessage.findItem(MESSAGE_PART); + messagePart.setHidden(true); + messagePart.setSize(0); + + StandardItem messageHeaderPart = standardMessage.findItem(MESSAGE_PART_HEADER_PART); + messageHeaderPart.setSize(0); + StandardItem messageBodyPart = standardMessage.findItem(MESSAGE_PART_BODY_PART); + messageBodyPart.setSize(0); + } + } this.reqObject = makeStandardMessageData(this.reqEaiMsg, this.adptrMsgType, this.reqObject, this.outboundCharset); + if(this.reqObject instanceof String) { this.reqObject = ((String) this.reqObject).getBytes(this.outboundCharset); }