이클립스로 쉽게 웹서비스 시작하기에 이어지는 글입니다.
simplews 프로젝트 하나에서 3개의 프로젝트가 더 늘어났습니다.
일단 기존 simplews의 변화부터 살펴 보겠습니다.
svn에 최초 버전을 기록해 놓았기 때문에 Synchronize 뷰를 통해서 파일의 변경내역을 확인할 수 있습니다.

사용자 삽입 이미지


web.xml 파일만 변경이 되었고, 나머지 디렉토리와 파일들은 새롭게 생성되었습니다.
파일 확장자의 변화를 보면 *.wsdd, *.jar, *.wsdl 이렇게 생성이 되었습니다.

디렉토리의 변경도 볼 필요가 있는데, WebContent/WEB-INF/ 아래 생긴 것과 WebContent 으로 나눠 볼 수 있습니다. WebContent/ 디렉토리는 컨텍스트 루트이고, WebContent/WEB-INF/ 디렉토리는 브라우저를 통해서 접근할 수 없는 서버 내부적 디렉토리입니다. 결국 WebContent/wsdl/ 디렉토리가 외부로 공개되는 자원이라고 생각할 수 있습니다. 파일이 하나 있는데, 이름이 자바파일 이름과 같고, 확장자가 wsdl 이네요.

WEB-INF/lib 디렉토리에 추가된 jar 파일을 살펴보겠습니다.
axis.jar : 웹서비스용 컴포넌트입니다.
http://axis.apache.org/
commons-discovery-0.2.jar : 서비스 발견 컴포넌트입니다.
http://commons.apache.org/discovery/
commons-logging.jar : 로깅에 관련된 컴포넌트.
http://commons.apache.org/logging/
jaxrpc.jar : 자바 xml rpc 컴포넌트
https://jax-rpc.dev.java.net/
saaj.jar : SOAP with Attachments API for Java (SAAJ)
http://java.sun.com/webservices/saaj/docs.html
wsdl4j-1.5.1.jar : Web Services Description Language for Java
http://sourceforge.net/projects/wsdl4j

이러한 컴포넌트들이 자동으로 붙게 됩니다.

WoC에 제출한 프로젝트 준비중입니다. 상품 OpenAPI로 매시업 위젯만들기 프로젝트를 제안했습니다. 국내 최대의 경매 사이트인 옥션의 API를 이용해보려고 시도했는데, 웹서비스의 SOAP를 구성해서 보내야 되기 때문에 URL을 통해서 데이터를 전송하고 받아오는 REST방식보다 아주 많이 복잡합니다.

다행히 http://api.auction.co.kr/developer/APIGuide/APIGuide.aspx?categoryID=D02 페이지에 자바 샘플도 있기 때문에 이것을 이용해서 접근 테스트를 해보았습니다. 상품코드를 이용해 상품명을 가져오는 간단한 테스트입니다.

결과는 다음과 같이 보여집니다.

사용자 삽입 이미지

위와 같은 결과를 가져오기 위해서는 옥션 개발자 프로그램에 회원가입되어 있어야 합니다. 개발자 회원은 옥션의 회원아이디와는 별개입니다.

개발자 등록을 마치면 오픈API를 이용하는 애플리케이션을 등록해야 합니다. 이때 어플리케이션에서만 사용되는 인증 정보가 따로 정해집니다. 개발자 프로그램 페이지 우측 상단의 회원정보수정 링크를 통해서 이동합니다.

사용자 삽입 이미지
페이지 하단에 등록된 애플리케이션 링크가 있습니다. 클릭해서 들어가면 다음과 같은 정보들이 보입니다.
사용자 삽입 이미지

여기서 프로그램 작동에 관해 중요한 요소는 4가지입니다. 상단 빨간박스 안에 있는 회원ID, 애플리케이션 ID, 비밀번호 세 가지와 하단에 실서버, 테스트서버 IP를 추가할 수 있는데, 이렇게 등록된 IP입니다. 옥션의 api서버에 도달하는 ip는 다음 주소에서 확인할 수 있습니다.
http://www.okjsp.pe.kr/mashup/ip.jsp
이들 정보 중에서 하나라도 맞지 않으면 원하는 결과를 얻을 수 없습니다.

http://upload.auction.co.kr/APICommunity/DownloadAPICommunityFile.aspx?kind=docs&name=0711190946i37_java_auction_codesamples_new.zip 클릭하면 java 샘플을 다운로드 받을 수 있습니다.

이클립스에 java project를 만들고 import합니다. 가능하면 src 아래는 패키지에 따른 디렉토리 형태로 자바소스가 위치해야 합니다. jsp는 여기서는 다루지 않겠습니다.
사용자 삽입 이미지


소스의 구성은 위 그림과 같이 됩니다. 여기서 수정되는 파일은 service1 패키지의 RequestApplicationTicket.java 파일입니다.
45번 라인을 자신이 등록한 정보에 맞게 수정합니다.
사용자 삽입 이미지

그리고 service1.RequestApplicationTicket.java 파일을 실행합니다. 콘솔창에 보면 Ticket이 찍혀나오게 됩니다. 이 티켓을 복사합니다. 굉장히 깁니다.
service1.ViewItem.java 파일을 열어서 47번 라인으로 이동하면 "<Value></Value>" 사이에 복사한 키를 붙여넣습니다.
사용자 삽입 이미지

그리고 service1.ViewItem.java를 Run As > Java Application 메뉴로 실행하면 콘솔에 해당 상품코드와 상품명이 찍혀 나오는 것을 확인 할 수 있습니다.

테스트 서버에서 이루어진 개발이기 때문에 실 서버의 데이터를 이용하려면 서버의 주소를 바꿔줘야 합니다. 소스 내에 주석처리되어있습니다.

이것을 위젯에서 사용하려면 갈 길이 먼 듯 합니다. ^^

+ Recent posts