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 수행 후 응답된 데이터를 확인)