//
//package com.eactive.eai.adapter.http.client.impl;
//
//import com.eactive.eai.adapter.http.HttpMemoryLogger;
//import com.eactive.eai.adapter.http.client.HttpClientAdapterServiceSupport;
//import com.eactive.eai.adapter.http.client.HttpClientAdapterVO;
//import com.eactive.eai.common.util.CommonLib;
//
//import java.util.Hashtable;
//import java.util.Map;
//import java.util.Properties;
//
////import k4m.eCross.client.Context;
//
//
///** 
//* 1. 기능 : EAI HTTP OutBound 용 어댑터로 수동 시스템의 HTTP 웹 컴포넌트를 
//*           GET/POST 방식으로 호출할 수 있는 기능을 제공한다.
//* 2. 처리 개요 : 
//* *     - 2009.11.24 retry 로직 제거  : 요청
//* 3. 주의사항 
//*
//* @author  : 
//* @version : v 1.0.0
//* @see : WLIAdapterFactory.java, WLIAdapter.java, WLIDefaultAdapter.java
//* @since   : 
//
//*/
//public class HttpClientAdapterServiceExtorg extends HttpClientAdapterServiceSupport{ 
//    
//	@Override
//	protected void init(){
//		;
//	}
//    /** 
//    * 1. 기능 :  전문과 같은 Raw Data 통신에 사용
//    * 2. 처리 개요 : 
//    *     - 속성 정보를 설정 하고 수동 시스템 서비스를 호출 한다.
//    * 3. 주의사항 
//    *
//    * @param    prop    Http Adapter 속성 정보
//    * @param    message 송신 전문
//    * @return   반환 된 byte[] Object
//    * @exception    Exception 수동 시스템 간 통신 중 발생
//    **/
//    public Object execute(Properties prop, byte[] data, Properties tempProp) throws Exception
//    {
//    	HttpClientAdapterVO vo = super.setting(prop, tempProp);
//    	String msgNumber = "";
//    	String ReceiverID = "";
//    	
//    	if (logger.isDebug()){
//        	logger.debug("HttpClientAdapterServiceExtorg: Body Size] ["+data.length+"]");
//        }
//    	
//    	if(data.length > 23){
//    		msgNumber = new String(data, 19, 4);
//    		if (logger.isDebug()){
//            	logger.debug("HttpClientAdapterServiceExtorg: msgNumber] ["+msgNumber+"]");
//            }
//           	//String ReceiverID = "770000";
//           	
//            /* 20081124 add MP at KIBO start------------------------------------*/
//            /* ReceiverID extract Message */
//            ReceiverID = new String(data, 12, 7).trim(); 
//            /* 20081124 add MP at KIBO start------------------------------------*/
//            
//            if (logger.isDebug()){
//            	logger.debug("HttpClientAdapterServiceExtorg: ReceiverID] ["+ReceiverID+"]");
//            }
//    	}else{
//    		logger.warn("Invalid message length - Length["+data.length+"]");
//    	}
//		
//        
//       	String url = prop.getProperty(URL);
//
//       	//flat데이타
//       	String inputLine = "               "+new String(data);
//		String outputString = "";      
//    	
//    	
//		try
//		{           
//			Map inputStream = new Hashtable();
//			Map outStream = new Hashtable();
//		 	String serviceName = "MPS.Send.FlatSender";                        
//            inputStream.put("MessageNumber",msgNumber);
//            inputStream.put("ReceiverID",ReceiverID);
//			// 트랜젝션 ID 15바이트를 처리
//            inputStream.put("FlatStream",inputLine);
//
//			
//			if(logger.isDebug()){
//                logger.debug(  "[serviceName]"+ serviceName + "\n"
//						+ "[MessageNumber]" + msgNumber + "\n"
//						+ "[ReceiverID]" + ReceiverID + "\n"
//						+ "[FlatStream]" + inputLine + "\n"
//						+ "SEND ["+new String(data)+"]"+CommonLib.getDumpMessage(data) +"\n");
//            }
//      
//	    	try{
//	    		if (vo.getTraceLevel() >= 3){
//					HttpMemoryLogger.txlog(vo.getAdapterGroupName()+vo.getAdapterName(), 
//							  "[serviceName]"+ serviceName + "\n"
//							+ "[MessageNumber]" + msgNumber + "\n"
//							+ "[ReceiverID]" + ReceiverID + "\n"
//							+ "[FlatStream]" + inputLine + "\n"
//							+ "SEND ["+new String(data)+"]"+CommonLib.getDumpMessage(data) +"\n"
//							);
//	    		}    
//            	//eCross Partner 주소
////				Context ctx = new Context(url,"demo","demo");		
////	       		outStream = ctx.CallService(serviceName,inputStream);
//	            //결과전문
//        		outputString = (String)outStream.get("ReplyStream");
//
//				// 트렌젝션 ID 15바이트를 처리
//				try {
//					outputString = outputString.substring(15);
//				}catch(Exception ex){
//					logger.warn("substring error", ex);
//				}
//
//	    		if (vo.getTraceLevel() >= 3){
//					HttpMemoryLogger.txlog(vo.getAdapterGroupName()+vo.getAdapterName(), 
//							"RECV ["+outputString+"]"+CommonLib.getDumpMessage(outputString.getBytes()) +"\n"
//							);
//	    		}    				
//            }catch(Exception ee){                                      
//				if(logger.isError()){
//	                logger.error("HttpClientAdapterServiceExtorg] Exception"+ ee.getMessage(),ee);
//	            }
//        	}              	
//        } catch (Exception e) {
//			if(logger.isError()){
//                logger.error("HttpClientAdapterServiceExtorg] Exception"+ e.getMessage(),e);
//            }
//        } 
//
//		if(logger.isDebug()){
//            logger.debug("RECV ["+outputString+"]"+CommonLib.getDumpMessage(outputString.getBytes()) +"\n");
//        }
//              
//        if (outputString == null){
//        	throw new Exception("HttpClientAdapterServiceExtorg ] execute - input message parse fail");
//        }
//
//        return outputString.getBytes();
//    }
//
//} 
