1-2. bizMOB Server 데모 세팅

Download Report

Transcript 1-2. bizMOB Server 데모 세팅

bizMOB Server 데모 및 실습
모빌씨앤씨
Mobile C&C
Ver 1.0
1. bizMOB 샘플 데모
1. bizMOB Server 데모
• 1-1. bizMOB 데모 소개
• 1-2. Server 데모 세팅
• 1-3. 데모 연동
1-1. bizMOB Server 데모 소개
1-1. bizMOB Server 데모 소개


bizMOB Server 이해를 돕기 위해서 데모를 제공한다.
데모는 로그인, 게시판목록 조회, 게시판 상세조회 등 단순한 업무를 로컬에 세팅하여 연동 확인 할 수 있다.
 데모 진행 순서





1.
2.
3.
4.
5.
데모 로컬 서버 세팅
데모 테스트
데모 단말 연동
DB Adapter 구현 실습
HTTP Adapter 구현 실습
1-2. bizMOB Server 데모 세팅
1-2. bizMOB Server 데모 세팅

데모 세팅을 위해서 bizMOB Server 개발자 가이드를 학습을 권장하며, 반드시 bizMOB Server 개발 환경이 구축되어 있어
야 한다.(개발자 가이드 2장 bizMOB Server 개발환경 세팅 가이드 참고)
 bizMOB Server 데모 설치

STEP 1. bizMOB Server 데모 다운로드 : http://218.55.79.93:8110/bizmobsquare/bizMOB_Server_Demo.zip 에서 bizMOB Server 데모





STEP
STEP
STEP
STEP
STEP
를 다운로드 받는다.
2.
3.
4.
5.
6.
압축해제 : 다운로드 받은 파일을 특정 위치에 압축해제 한다.
Eclipse Import : Navigation : File -> Import -> General -> Existing Projects into Workspace 선택 후 “Next”
“Browse…” 클릭
[STEP2]에서 압축 해제한 디렉토리를 선택 후 “확인”
Projects 탭에 4개의 project를 모두 체크 후 “Finish”
STEP 5
STEP 3
STEP 4
STEP 6
1-2. bizMOB Server 데모 세팅
 bizMOB Server 데모 User Libraies 설정





STEP
STEP
STEP
STEP
STEP
1.
2.
3.
4.
5.
Navigation : “com.mcnc.bizmob.demo.web”에서 마우스 오른쪽 -> Build Path -> Configure Build Path…
bizmob 선택 후 “Edit…” 클릭
“User Libraries…” 클릭
“Import…” 클릭
“Browse…” 클릭 후 SMART_HOME/lib 폴더의 “bizmob_ex.userlibraries” 선택
STEP 1
STEP 5
STEP 2
STEP 4
STEP 3
1-2. bizMOB Server 데모 세팅
 bizMOB Server 데모 DB 설정


STEP 1. Navigation : Package Explorer -> Server -> Tomcat 디렉토리 -> context.xml 오픈
STEP 2. 파일 하단에 DB 설정 코드를 입력 후 저장 (하단의 코드 참고)
STEP 1
<!-- bizMOB DB -->
<Resource auth="Container"
driverClassName="oracle.jdbc.driver.OracleDriver"
logAbandoned="true" maxActive="100" maxIdle="30"
maxWait="180"
name="BizMOBDS"
username="bizmob"
password="bizmob123"
removeAbandoned="true" removeAbandonedTimeout="60"
type="javax.sql.DataSource"
url="jdbc:oracle:thin:@218.55.79.93:1521:bizmob"
/>
STEP 2
<!-- Legacy DB -->
<Resource auth="Container"
driverClassName="oracle.jdbc.driver.OracleDriver"
logAbandoned="true" maxActive="100" maxIdle="30"
maxWait="180"
name="LegacyDS"
username="legacy"
password="legacy123"
removeAbandoned="true" removeAbandonedTimeout="60"
type="javax.sql.DataSource"
url="jdbc:oracle:thin:@218.55.79.93:1521:legacy"
/>
DB 설정 코드를 추가한다.
1-2. bizMOB Server 데모 세팅
 bizMOB Server 데모 Tomcat Server 설정





STEP
STEP
STEP
STEP
1.
2.
3.
4.
Navigation : Server 에서 마우스 오른쪽 클릭 -> Add and Remove…
Add 버튼 클릭하여 demo web project를 추가 후 “Finish”
Navigation : Server -> Tomcat Server 더블 클릭 -> Overview 창에서 Open launch configuration 클릭
Arguments 탭의 VM arguments에 다음의 환경변수를 추가한다.
[Code] -DSMART_HOME={ SMART_HOME의 경로 }
STEP 5. “OK” 클릭
STEP 1
STEP 3
STEP 2
STEP 4
STEP 5
1-2. bizMOB Server 데모 세팅
 bizMOB Server 데모 SMART_HOME 설정

다음의 파일에 SMART_HOME의 절대 경로를 입력한다.
①
②
③

com.mcnc.bizmob.demo.adapter -> test -> com.mcnc.bizmob.demo.adapter.test -> TestAdapter.java
com.mcnc.bizmob.demo.adapter -> test -> test-applicationContext.xml
SMART_HOME -> conf -> server -> updater.properties
다음의 파일에 Local Server의 ip, port 정보를 입력한다.
①
SMART_HOME -> conf -> smart.properties
1-2. bizMOB Server 데모 세팅
 bizMOB Server 데모 구동 확인

세팅된 데모가 정상적으로 실행되는지 확인한다.


STEP 1. Navigation : Server -> Start 또는 Debug 클릭
STEP 2. Console창에 로그를 확인
STEP 1
STEP 2
정상 실행된 로그
1-2. bizMOB Server 데모 세팅
 bizMOB Server 데모 JUnit Test

데모에서 제공하는 JUnit Test를 통해서 각 어댑터가 정상 작동하는지 확인한다.


STEP 1. Navigation : JUnit Adapter Class -> 마우스 오른쪽 클릭 -> Run As -> JUnit Test 선택
STEP 2. 해당 JUnit Adapter Class가 최초 실행됬을 경우 이클립스 설정에 따라 Launcher 선택화면이 나타날 수 있다.
Launcher 화면에서 “Eclipse JUnit Launcher” 를 선택하고 “OK”
STEP 1
STEP 2
1-3. bizMOB Server 데모 연동
1-2. bizMOB Server 데모 연동

로컬에 세팅한 bizMOB Server와 단말간 연동을 확인한다.
 다운로드 및 설치


STEP 1. 단말기에서 http://bizmob.mcnc.co.kr/appstore/bizmob.html 에서 개발용 앱 다운로드
(Android,IOS 동일)
STEP 2. 다운로드한 앱 설치
1-3. bizMOB Server 데모 연동
 환경설정



STEP 1. 환경설정 화면으로 이동
최초 실행시 환경설정화면이 표시됨
이미 적용된 설정을 수정하고 싶은 경우



IOS인 경우 상단바를 터치
Android인 경우 로그인화면에서 메뉴키를 터치
STEP 2. 아래와 같이 세팅 후 저장버튼 클릭, 앱 재시작
로컬 IP,Port Context 를 입력한다.
단말 등록화면 표시 여부
1-3. bizMOB Server 데모 연동
 단말등록



STEP 1. 설정 후 앱을 재 시작하면 사용등록 화면이 나타남
인증번호는 교육 신청 시 발급된 번호 입력
해당 창은 최초 앱 설치 후 한번만 나타남
 로그인 및 서비스 연동
2. bizMOB Server 실습
2. bizMOB Server 실습
• 2-1. DB연동 Adapter 개발 실습
• 2-2. HTTP 연동 Adapter 개발 실습
2-1. DB 연동 Adapter 개발 실습
2-1. DB 연동 Adapter 개발 실습


본 장에서는 DB를 연동하여 데이터를 조회하는 Adapter를 개발해본다.
데모의 DM0002 게시판 목록 조회 전문을 참고 하여 검색 기능이 있는 Adapter를 구현한다.
 전문 설계


화면에 대한 전문을 설계 하고 bizMOB Service Builder에 등록한다.
본 실습에서 전문 등록 실습은 생략한다. ( 사전 등록되어 있는 DM0006 전문 사용 )
2-1. DB 연동 Adapter 개발 실습
 Model 객체 생성

STEP 1. Navigation : Messages Tree View -> DM0006에서 마우스 오른쪽 클릭 -> Generate Domain Class 선택


STEP 2. Source folder 선택


com.mcnc.bizmob.demo.model/src를 선택한다.
STEP 3. Package 선택


Messages Tree View가 Eclipse 화면에 없을 경우 상단 메뉴 bizMOB – Open Messages Tree View를 클릭한다.
com.mcnc.bizmob.demo.model를 선택한다.
STEP 4. Finish 버튼을 클릭

DM0006 전문의 Header와 Request/Response Body 객체가 자동으로 생성된다.
2-1. DB 연동 Adapter 개발 실습
 Adapter 생성

STEP 1. Navigation : Messages Tree View -> 마우스 오른쪽 클릭 -> Generate Adapter Class 선택


STEP 2. Source folder와 Package를 선택


com.mcnc.bizmob.demo.adapter/src를 선택한다.
STEP 4. Package 선택


DB Adapter를 체크한다.
STEP 3. Source folder 선택


Messages Tree View가 Eclipse 화면에 없을 경우 상단 메뉴 bizMOB – Open Messages Tree View를 클릭한다.
com.mcnc.bizmob.demo.adapter를 선택한다.
STEP 5. Finish 버튼을 클릭

DM0006 Adapter 객체가 자동 생성된다.
2-1. DB 연동 Adapter 개발 실습
 SQL File 생성 및 코딩



STEP 1. Navigation : SMART_HOME/conf/sql/oracle -> 마우스 오른쪽 클릭 -> new -> other 선택
STEP 2. XML탭에서 XML File 선택 후 “Next”
STEP 3. File name에 “DM0006.xml” 입력 후 “Finish”
2-1. DB 연동 Adapter 개발 실습

STEP 4. 생성된 파일에 다음의 내용을 추가 후 저장한다.
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="DM0006">
<select id="DM0006001" statementType="PREPARED"
parameterType="java.util.HashMap" resultType="java.lang.Integer">
<![CDATA[
/* DM0006001 게시판 목록 총 조회개수*/
SELECT
COUNT(*) AS totalCnt
FROM
DEMO_BOARD_TBL A, DEMO_USER_INFO_TBL B
WHERE
A.CREATOR_ID = B.USER_ID(+)
AND SUBJECT LIKE '%' || #{keyword, jdbcType=VARCHAR } || '%'
]]>
</select>
<select id="DM0006002" statementType="PREPARED" parameterType="java.util.HashMap"
resultType="com.mcnc.bizmob.demo.model.DM0006.DM0006Response_Body_list">
<![CDATA[
/* DM0006002 게시판 목록 조회*/
SELECT
docId,
title,
regName,
deptName,
regDate,
attachFlag
FROM(
SELECT
(ROWNUM -1) AS rowCnt,
docId,
title,
regName,
deptName,
regDate,
attachFlag
FROM
(SELECT
A.BOARD_ID AS docId
, A.SUBJECT AS title
, B.USER_NAME AS regName
, B.DEPT_NAME AS deptName
, TO_CHAR(A.CREATE_DATE,'YYYYMMDDHH24MI') AS regDate
, A.ATTACH_FLAG AS attachFlag
FROM
DEMO_BOARD_TBL A, DEMO_USER_INFO_TBL B
WHERE
A.CREATOR_ID = B.USER_ID(+)
AND SUBJECT LIKE '%' || #{keyword, jdbcType=VARCHAR } || '%'
ORDER BY A.CREATE_DATE DESC
)
)
WHERE
rowCnt >= #{startIndex, jdbcType=INTEGER}
AND rowCnt <= #{endIndex, jdbcType=INTEGER}
]]>
</select>
</mapper>
2-1. DB 연동 Adapter 개발 실습
 SQL Map 설정

STEP 1. 생성된 SQL 파일을 SqlMapConfig.xml(SMART_HOME/conf)의 Mappers에 추가한다.
2-1. DB 연동 Adapter 개발 실습
 Adapter 코딩

•
STEP 1. Request 전문 코드 추가
[code]
/** 1. 전문의 Request Header, Body (전문별 코딩) **/
DM0006Request request = new DM0006Request(obj);
DMHeader header = request.getHeader();
DM0006Request_Body reqBody = request.getBody();

•
STEP 2. 요청 데이터 추출
[code]
/** 2. 전문 데이터 추출 **/
int startIndex = reqBody.getStartIndex();
int endIndex = reqBody.getEndIndex();
String keyword= reqBody.getKeyword();

•
STEP 3. DB 연동 코드
[code]
/** 3. Legacy 연동 코드 코딩 (DB, HTTP, SMTP 등등) **/
HashMap< String, Object >inputParameterMap= new HashMap< String, Object >();
inputParameterMap.put( "startIndex", startIndex );
inputParameterMap.put( "endIndex", endIndex );
inputParameterMap.put( "keyword", keyword );
int totalCnt = (Integer) dbAdapter.selectOne(CodesEx.DATA_SOURCE_DEMO_LEGACYDB, "DM0006.DM0006001", inputParameterMap);
List <DM0006Response_Body_list> boardList = null;
if( totalCnt > 0 ){
boardList = (List<DM0006Response_Body_list>) dbAdapter.selectList(CodesEx.DATA_SOURCE_DEMO_LEGACYDB, "DM0006.DM0006002",
inputParameterMap);
}
2-1. DB 연동 Adapter 개발 실습

•
STEP 4. Response 전문 코드 추가
[code]
/** 4. 전문의 Response Header, Body (전문별 코딩) **/
DM0006Response response= new DM0006Response();
DM0006Response_Body resBody= new DM0006Response_Body();
resBody.setTotalCnt(totalCnt);
if( boardList != null ){
resBody.setList(boardList);
}
response.setHeader(header);
response.setBody(resBody);

•
STEP 5. Return 코드 추가
[code]
return makeResponse(obj, response.toJsonNode());
2-1. DB 연동 Adapter 개발 실습

Adapter 전체 코드
import java.util.HashMap;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import com.mcnc.bizmob.adapter.AbstractTemplateAdapter;
import com.mcnc.bizmob.adapter.DBAdapter;
import com.mcnc.bizmob.demo.common.CodesEx;
import com.mcnc.bizmob.demo.model.DM0006.DM0006Request;
import com.mcnc.bizmob.demo.model.DM0006.DM0006Request_Body;
import com.mcnc.bizmob.demo.model.DM0006.DM0006Response;
import com.mcnc.bizmob.demo.model.DM0006.DM0006Response_Body;
import com.mcnc.bizmob.demo.model.DM0006.DM0006Response_Body_list;
import com.mcnc.bizmob.demo.model.header.DMHeader;
import com.mcnc.smart.common.logging.ILogger;
import com.mcnc.smart.common.logging.LoggerService;
import com.mcnc.smart.hybrid.adapter.api.Adapter;
import com.mcnc.smart.hybrid.adapter.api.IAdapterJob;
import com.mcnc.smart.hybrid.common.server.JsonAdaptorObject;
@Adapter(trcode = { "DM0006" })
public class DM0006_Adapter extends AbstractTemplateAdapter implements
IAdapterJob {
private static final ILogger logger = LoggerService
.getLogger(DM0006_Adapter.class);
@Autowired
private DBAdapter dbAdapter;
public JsonAdaptorObject onProcess(JsonAdaptorObject obj) {
/** 1. 전문의 Request Header, Body (전문별 코딩) **/
DM0006Request request= new DM0006Request(obj);
DMHeader header= request.getHeader();
DM0006Request_Body reqBody= request.getBody();
/** 2. 전문 데이터 추출 **/
int startIndex = reqBody.getStartIndex();
int endIndex = reqBody.getEndIndex();
String keyword= reqBody.getKeyword();
/** 3. Legacy 연동 코드 코딩 (DB, HTTP, SMTP 등등) **/
HashMap< String, Object >inputParameterMap= new HashMap< String,
Object >();
inputParameterMap.put( "startIndex", startIndex );
inputParameterMap.put( "endIndex", endIndex );
inputParameterMap.put( "keyword", keyword );
int totalCnt = (Integer)
dbAdapter.selectOne(CodesEx.DATA_SOURCE_DEMO_LEGACYDB,
"DM0006.DM0006001", inputParameterMap);
List <DM0006Response_Body_list> boardList = null;
if( totalCnt > 0 ){
boardList = (List<DM0006Response_Body_list>)
dbAdapter.selectList(CodesEx.DATA_SOURCE_DEMO_LEGACYDB,
"DM0006.DM0006002", inputParameterMap);
}
/** 5. 전문의 Response Header, Body (전문별 코딩) **/
DM0006Response response= new DM0006Response();
DM0006Response_Body resBody= new DM0006Response_Body();
resBody.setTotalCnt(totalCnt);
if( boardList != null ){
resBody.setList(boardList);
}
response.setHeader(header);
response.setBody(resBody);
return makeResponse(obj, response.toJsonNode());
}
}
2-1. DB 연동 Adapter 개발 실습
 JUnit Adapter Class 생성

구현된 DM0006 Adapter에 대한 Junit Adapter Class를 생성하여 테스트한다.




STEP
STEP
STEP
STEP
1.
2.
3.
4.
Navigation : Messages Tree View -> DM0006에서 마우스 오른쪽 클릭 -> Generate JUnit Adapter Class 선택
Source folder의 “Browse…”버튼 클릭 -> test folder 선택 후 “OK”
Package의 “Browse…”버튼 클릭 -> Test Adapter Class가 생성된 Package를 선택 후 “OK”
“Finish”를 클릭하여 JUnit Adapter Class를 생성한다
STEP 2
STEP 1
STEP 3
STEP 4
2-1. DB 연동 Adapter 개발 실습

STEP 5. 생성된 JUnit Adapter Class의 테스트 DM0006 Adapter의 import 한다.
STEP 5
DM0006 Adapter 를 import 한다.
2-1. DB 연동 Adapter 개발 실습
 Test JSON File 생성

Adapter를 테스트 하기 위해 요청 전문에 대한 Test JSON File을 생성한다.





STEP
STEP
STEP
STEP
STEP
1.
2.
3.
4.
5.
Navigation : Messages Tree View -> 마우스 오른쪽 클릭 -> Generate Json File 선택
“Import” 버튼을 클릭 (요청전문 JSON 출력됨)
요청전문의 body에 테스트 데이터를 입력
“Next”를 클릭하여 Test JSON File을 저장 위치 지정화면으로 이동
Adapter의 test/data folder를 지정한 후 “Finish” 클릭으로 Test JSON File 생성
STEP 1
STEP 5
STEP 2
STEP 3
STEP 4
2-1. DB 연동 Adapter 개발 실습
 JUnit Test 실행 (Run)

앞의 과정이 완료되면 각 DM0006 JUnit Test가 가능하다. Test를 위한 방법은 다음과 같다.


STEP 1. Navigation : DM0006 JUnit Adapter Class -> 마우스 오른쪽 클릭 -> Run As -> JUnit Test 선택
STEP 2. 해당 JUnit Adapter Class가 최초 실행됬을 경우 이클립스 설정에 따라 Launcher 선택화면이 나타날 수 있다.
Launcher 화면에서 “Eclipse JUnit Launcher” 를 선택하고 “OK”
STEP 1
STEP 2
2-1. DB 연동 Adapter 개발 실습
 JUnit Test 로그 확인


JUnit Test가 실행되면 Eclipse의 Console창에 로그가 출력된다.
로그의 형태는 로그 세팅과 Adpater 로그에 따라 다소 차이가 있을 수 있다.
Adapter 등록 로그
( 추가한 Adapter 가 정상 등록되어 있는지 확인 )
요청/응답 전문 로그
( 요청한 데이터와 Adapter 수행 후 응답된 데이터를 확인)
2-2. HTTP 연동 Adapter 개발 실습
2-2. HTTP 연동 Adapter 개발 실습

본 장에서는 HTTP를 연동하는 Adapter를 개발해본다.
 전문 설계


화면에 대한 전문을 설계 하고 bizMOB Service Builder에 등록한다.
본 실습에서 전문 등록 실습은 생략한다. ( 사전 등록되어 있는 DM0005 전문 사용 )
2-1. HTTP 연동 Adapter 개발 실습
 Model 객체 생성

STEP 1. Navigation : Messages Tree View -> DM0005에서 마우스 오른쪽 클릭 -> Generate Domain Class 선택


STEP 2. Source folder 선택


com.mcnc.bizmob.demo.model/src를 선택한다.
STEP 3. Package 선택


Messages Tree View가 Eclipse 화면에 없을 경우 상단 메뉴 bizMOB – Open Messages Tree View를 클릭한다.
com.mcnc.bizmob.demo.model를 선택한다.
STEP 4. Finish 버튼을 클릭

DM0005 전문의 Header와 Request/Response Body 객체가 자동으로 생성된다.
2-1. HTTP 연동 Adapter 개발 실습
 Adapter 생성

STEP 1. Navigation : Messages Tree View -> 마우스 오른쪽 클릭 -> Generate Adapter Class 선택


STEP 2. Source folder와 Package를 선택


com.mcnc.bizmob.demo.adapter/src를 선택한다.
STEP 4. Package 선택


HTTP Adapter를 체크한다.
STEP 3. Source folder 선택


Messages Tree View가 Eclipse 화면에 없을 경우 상단 메뉴 bizMOB – Open Messages Tree View를 클릭한다.
com.mcnc.bizmob.demo.adapter를 선택한다.
STEP 5. Finish 버튼을 클릭

DM0005 Adapter가 자동 생성된다.
2-1. HTTP 연동 Adapter 개발 실습
 Adapter 코딩

•
STEP 1. Request 전문 코드 추가
[code]
/** 1. 전문의 Request Header, Body (전문별 코딩) **/
DM0005Request request = new DM0005Request(obj);
DMHeader header = request.getHeader();
DM0005Request_Body reqBody = request.getBody();

•
STEP 2. 요청 데이터 추출 코드 추가
[code]
/** 2. 전문 데이터 추출 **/
String reqName = reqBody.getReqName();

•
STEP 3. 요청 URL 코드 코드 추가
[code]
String url = “http://127.0.0.1:8080/demo/webservice/hellowWebService”;

•
STEP 4. HTTP 연동 코드
[code]
/** 3. Legacy 연동 코드 코딩 (DB, HTTP, SMTP 등등) **/
HashMap< String, Object >inputParameterMap= new HashMap< String, Object >();
inputParameterMap.put( "reqName", reqName );
// POST 호출
byte[] httpRes = httpAdapter.doPost(url, inputParameterMap, new UrlEncodedFormEntityMapper("UTF-8"));
String resMessage = new String(httpRes);
logger.info( "[POST]" + resMessage );
// GET 호출
HttpResponse doGetResult = httpAdapter.doGet(url + "?" +"reqName=" + reqName);
String responseString = new BasicResponseHandler().handleResponse(doGetResult);
logger.info( "[GET]" + responseString );
2-1. HTTP 연동 Adapter 개발 실습

•
STEP 4. Response 전문 코드 추가
[code]
/** 4. 전문의 Response Header, Body (전문별 코딩) **/
DM0005Responseresponse= new DM0005Response();
DM0005Response_BodyresBody= new DM0005Response_Body();
resBody.setResMessage(resMessage);
response.setHeader(header);
response.setBody(resBody);

•
STEP 5. Return 코드 추가
[code]
return makeResponse(obj, response.toJsonNode());
2-1. HTTP 연동 Adapter 개발 실습

Adapter 전체 코드
import java.util.HashMap;
import
import
import
import
org.apache.http.HttpResponse;
org.apache.http.impl.client.BasicResponseHandler;
org.codehaus.jackson.node.ObjectNode;
org.springframework.beans.factory.annotation.Autowired;
import
import
import
import
import
import
import
import
import
import
import
import
import
import
com.mcnc.bizmob.adapter.AbstractTemplateAdapter;
com.mcnc.bizmob.adapter.HTTPAdapter;
com.mcnc.bizmob.demo.common.CodesEx;
com.mcnc.bizmob.demo.common.UrlEncodedFormEntityMapper;
com.mcnc.bizmob.demo.model.DM0005.DM0005Request;
com.mcnc.bizmob.demo.model.DM0005.DM0005Request_Body;
com.mcnc.bizmob.demo.model.DM0005.DM0005Response;
com.mcnc.bizmob.demo.model.DM0005.DM0005Response_Body;
com.mcnc.bizmob.demo.model.header.DMHeader;
com.mcnc.smart.common.logging.ILogger;
com.mcnc.smart.common.logging.LoggerService;
com.mcnc.smart.hybrid.adapter.api.Adapter;
com.mcnc.smart.hybrid.adapter.api.IAdapterJob;
com.mcnc.smart.hybrid.common.server.JsonAdaptorObject;
@Adapter(trcode = { "DM0005" })
public class DM0005_Adapter extends AbstractTemplateAdapter implements
IAdapterJob {
private static final ILogger logger = LoggerService
.getLogger(DM0005_Adapter.class);
@Autowired
private HTTPAdapter httpAdapter;
public JsonAdaptorObject onProcess(JsonAdaptorObject obj) {
/** 1. 전문의 Request Header, Body (전문별 코딩) **/
DM0005Requestrequest= new DM0005Request(obj);
DMHeaderheader= request.getHeader();
DM0005Request_BodyreqBody= request.getBody();
/** 2. 전문 데이터 추출 **/
String url = "http://127.0.0.1:8080/demo/webservice/hellowWebService";
String reqName = reqBody.getReqName();
/** 3. Legacy 연동 코드 코딩 (DB, HTTP, SMTP 등등) **/
HashMap< String, Object >inputParameterMap= new HashMap< String,
Object >();
inputParameterMap.put( "reqName", reqName );
// POST 호출
byte[]httpRes=httpAdapter.doPost(url, inputParameterMap, new
UrlEncodedFormEntityMapper("UTF-8"));
String resMessage = new String(httpRes);
logger.info( "[POST]" + resMessage );
// GET 호출
HttpResponse doGetResult = httpAdapter.doGet(url + "?" +"reqName=" +
reqName);
String responseString = new
BasicResponseHandler().handleResponse(doGetResult);
logger.info( "[GET]" + responseString );
/** 4. Adapter Logic **/
/** 5. 전문의 Response Header, Body (전문별 코딩) **/
DM0005Responseresponse= new DM0005Response();
DM0005Response_BodyresBody= new DM0005Response_Body();
resBody.setResMessage(resMessage);
response.setHeader(header);
response.setBody(resBody);
return makeResponse(obj, response.toJsonNode());
}catch (Exception e) {
logger.error("어댑터 에러", e);
return makeFailResponse( header.getTrcode() +
CodesEx.GROUPWARES_ERROR_PREFIX +
CodesEx.SYSTEM_EXCEPTION ,
"어댑터에서 로직 처리 중 에러가 발생하였습니다." );
}
}
2-1. HTTP 연동 Adapter 개발 실습
 JUnit Adapter Class 생성

구현된 DM0005 Adapter에 대한 Junit Adapter Class를 생성하여 테스트한다.




STEP
STEP
STEP
STEP
1.
2.
3.
4.
Navigation : Messages Tree View -> DM0006에서 마우스 오른쪽 클릭 -> Generate JUnit Adapter Class 선택
Source folder의 “Browse…”버튼 클릭 -> test folder 선택 후 “OK”
Package의 “Browse…”버튼 클릭 -> Test Adapter Class가 생성된 Package를 선택 후 “OK”
“Finish”를 클릭하여 JUnit Adapter Class를 생성한다
STEP 2
STEP 1
STEP 3
STEP 4
2-1. HTTP 연동 Adapter 개발 실습

STEP 5. 생성된 JUnit Adapter Class의 테스트 DM0005 Adapter의 import 한다.
STEP 5
DM0005 Adapter 를 import 한다.
2-1. HTTP 연동 Adapter 개발 실습
 Test JSON File 생성

Adapter를 테스트 하기 위해 요청 전문에 대한 Test JSON File을 생성한다.





STEP
STEP
STEP
STEP
STEP
1.
2.
3.
4.
5.
Navigation : Messages Tree View -> 마우스 오른쪽 클릭 -> Generate Json File 선택
“Import” 버튼을 클릭 (요청전문 JSON 출력됨)
요청전문의 body에 테스트 데이터를 입력
“Next”를 클릭하여 Test JSON File을 저장 위치 지정화면으로 이동
Adapter의 test/data folder를 지정한 후 “Finish” 클릭으로 Test JSON File 생성
STEP 1
STEP 5
STEP 2
STEP 3
STEP 4
2-1. HTTP 연동 Adapter 개발 실습
 JUnit Test 실행 (Run)

앞의 과정이 완료되면 각 DM0005 JUnit Test가 가능하다. Test를 위한 방법은 다음과 같다.


STEP 1. Navigation : DM0005 JUnit Adapter Class -> 마우스 오른쪽 클릭 -> Run As -> JUnit Test 선택
STEP 2. 해당 JUnit Adapter Class가 최초 실행됬을 경우 이클립스 설정에 따라 Launcher 선택화면이 나타날 수 있다.
Launcher 화면에서 “Eclipse JUnit Launcher” 를 선택하고 “OK”
STEP 1
STEP 2
2-1. HTTP 연동 Adapter 개발 실습
 JUnit Test 로그 확인


JUnit Test가 실행되면 Eclipse의 Console창에 로그가 출력된다.
로그의 형태는 로그 세팅과 Adpater 로그에 따라 다소 차이가 있을 수 있다.
Adapter 등록 로그
( 추가한 Adapter 가 정상 등록되어 있는지 확인 )
요청/응답 전문 로그
( 요청한 데이터와 Adapter 수행 후 응답된 데이터를 확인)