▶ Web Service 개념 설명
▶ Web Service 주요 구성요소 -SOAP-
▶ Web Service 주요 구성요소 -UDDI-
▶ Web Service 주요 구성요소 -WSDL-
▶ Web Service 구성도
웹 서비스의 구성도를 도식화 하면 아래 그림과 같다.
J2EE Client 개발 가이드
1. 환경구성
추가적으로 다음 그림과 같은 Library 파일이 필요하다.
위 라이브러리 가운데 Apache Commons라이브러리 ( http://commons.apache.org/ )와
HttpComponents( http://hc.apache.org/ )라이브러리는 명시된 버전 넘버보다 최신의 것을 사용해도 된다.
최종적으로 아래 그림과 같이 이클립스 프로젝트에 위 Library 파일을 등록하여 사용한다.
2. 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
3. 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 ################*/
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 ##################*/
}
}