메인메뉴 바로가기 본문 바로가기

본 가이드는 행정안전부에서 주관한 국가정보자원 개방 및 공동활용체계 구축사업에서 개발된 Open API를 사용하기 위한 가이드 입니다.
기존의 일반적인 웹서비스 클라이언트 개발과는 어느정도 차이가 있음을 확인해 주시기 바랍니다.

환경구성

J2EE기반의 Open API Client 개발을 위한 개발 환경은 다음 그림과 같다.

개발 Platform
Eclipse 3.4 (Ganymede) 이상
JDK version
JDK 1.5 이상

추가적으로 다음 그림과 같은 Library 파일이 필요하다. 추가 Library 파일은 개발가이드 Download 링크을 이용한다.

추가 Library 파일

종류
  • 연계 API Libraryz
  • Apache Commons
  • Apache
    httpcomponents
  • Jazzlib(압축)
Library File Name
  • Client_api-0.5.5.jar
  • commons-io-1.3.2.jar
    commons-lang-2.5.jar
    commons-configuration-1.6.jar
    commons-collections-3.2.1.jar
    commons-logging-1.1.1.jar
  • httpclient-4.0.3.jar
    httpcore-4.0.1.jar
  • Jazzlib-binary-0.07.jar

위 라이브러리 가운데 Apache Commons라이브러리 ( http://commons.apache.org/ )와
HttpComponents( http://hc.apache.org/ )라이브러리는 명시된 버전 넘버보다 최신의 것을 사용해도 된다.

최종적으로 다음 그림과 같이 이클립스 프로젝트에 위 Library 파일을 등록하여 사용한다.

파일등록
  1. java Build Path 선택한다.
  2. Eclipse의 Project Libraries에 다음의 Library 파일들을 추가한다.
  3. Add External JARs 버튼을 클릭한다.

esbclient.properties 파일 설정

연계 모듈에서 서비스 인증, 서비스 인증키 등록 주요 설정 정보를 파일로 관리한다.
설정 파일인 esbclient.properties 설정은 다음 표와 같다.

파일 설정을 위한 코드 안내 입니다.
########################################################
# intgr.data.go.kr --> 112.216.142.165
# (시스템의 도메인(C:\Windows\System32\drivers\etc\hosts) 에 추가)
########################################################

# 연계 URI
systemUri = http://intgr.data.go.kr:8883/sba/process/
# SSL인증파일 다운로드 URI
certUri = http://intgr.data.go.kr:8883/sba/authkey/
# SSL 인증 URI 
authUri = https://intgr.data.go.kr:8881/sba/ssl/
# 인증키(session key)등록 URI
sessionUri = https://intgr.data.go.kr:8881/sba/sessionKey/

# 등록저장소 SSL 인증을 위한 설정
keypass = 111222
defaultalias = esbkeystore
keystorename = keystore.ImportKey

# SSL 인증 관련 설정
certPath = D:\\keystore.ImportKey
id = test-service          #등록 저장소의 활용자 ID
password = testservice      #등록 저장소의 활용자 Password
ip = 192.168.0.45
sessionKey = 

# 암복호화 관련 설정
encodeType = ARIA 
bitNum = 128
secretKey = abcdefghijklm123

Sample Code 설명

공유 웹서비스 호출 Sample Code는 다음 표와 같다.

Sample Code 안내 입니다.
package iros.gsb.sample;

import iros.gsb.constant.UserType;
import iros.gsb.constant.WebSvcType;
import iros.gsb.sbe.api.IntegrationClientAPI;

import java.io.File;
import java.util.Map;

import org.apache.commons.io.FileUtils;

/**
* 웹서비스(SOAP, REST) 호출 Example
* @author Administrator
*
*/
public class TESTWEBSVC {

public static void main(String[] args) throws Exception{
IntegrationClientAPI api = new IntegrationClientAPI("D:\\esbclient.properties");  /* esbclient.properties 파일 설정/
String filename = "";

// 웹 서비스 활용자 인증처리를 한다.
System.out.println("---------------------------------------------");
api.auth(UserType.USER);

// 웹 서비스 활용자를 위한 서비스 인증키가 생성된다.
String madesskey = api.makeSessionKey();

// 웹 서비스 활용자를 위한 서비스 인증키(session key)를 발행한 후 인증 서버에 등록한다.
api.sendSessionKey(madesskey);

System.out.println("===========================[Session Key Result]===========================");
System.out.println("[INFO] made SessionKey : " + madesskey);
System.out.println();

/*################ REST 웹서비스 호출 POST 방식 START ################*/
WebSvcType wstype = WebSvcType.REST; // REST Type
String URI = "http://localhost:8080/iros_eaptl_websvc/customerservice/customerservice/customers"; // URI을 설정한다.
String reqStr = "<Customer><name>567</name></Customer>";// Request Message를 설정한다.

// REST 일 경우에는 Message Header를 설정한다.
// SOAP 일 경우에는 SOAP 메시지에 Message Header를 작성한다.
Map headerCnt = api.setHeaderCnt("serviceKey", "requestTime", "callbackURI", "reqMsgID");

// REST 웹 서비스를 호출한다.
String retval = api.send(wstype, URI, reqStr, headerCnt);

// 반환값을 출력한다.
System.out.println("===========================[REST POST Request Result]===========================");
System.out.println(retval);

/*################ REST 웹서비스 호출 POST 방식 END ################*/

/*################ REST 웹서비스 호출 GET 방식 START ################*/
wstype = WebSvcType.REST; // REST Type
URI = "http://localhost:8080/iros_eaptl_websvc/customerservice/customerservice/customers/123"; // URI을 설정한다.
reqStr = null;// GET 메소드는 Request Message가 필요없다.

// REST 일 경우에는 Message Header를 설정한다.
// SOAP 일 경우에는 SOAP 메시지에 Message Header를 작성한다.
headerCnt = api.setHeaderCnt("serviceKey", "requestTime", "callbackURI", "reqMsgID");

// REST 웹 서비스를 호출한다.
retval = api.send(wstype, URI, reqStr, headerCnt);

// 반환값을 출력한다.
System.out.println("===========================[REST GET Request Result]===========================");
System.out.println(retval);

/*################ REST 웹서비스 호출 GET 방식 END ################*/

/*################## SOAP 웹서비스 호출 START ##################*/
wstype = WebSvcType.SOAP; // SOAP Type
URI = "http://192.168.0.50:8092/PersonService/"; // URI을 설정한다.
filename = "request.xml"; // SOAP 메시지는 직접 SOAP 요청 메시지를 작성해야 함
reqStr = FileUtils.readFileToString(new File(filename)); // xml 파일을 String으로 변환한다

// SOAP 일 경우에는 SOAP 메시지에 Message Header를 작성하므로 headerCnt 를 null 로 설정한다.
headerCnt = null;

// REST 웹 서비스를 호출한다.
retval = api.send(wstype, URI, reqStr, headerCnt);

// 반환값을 출력한다.
System.out.println("===========================[SOAP Request Result]===========================");
System.out.println(retval);

/*################## SOAP 웹서비스 호출 END ##################*/
}
}

Download file