'PowerBilder 강좌'에 해당되는 글 2건

  1. 2009.09.11 [강좌] PowerBuilder 10 과 EAServer 5 이용한 웹 서비스 (下)
2009. 9. 11. 13:41

[출처 : 펜타소프트(http://www.penta.co.kr/)]

1. 개요

이전 7월호 에서는 파워빌더에서 생성된 서버 컴포넌트를 파워빌더 클라이언트에서 호출하는 방식을 살펴보았고, 8월호 에서는 Java Corba 서버 컴포넌트를 파워빌더에서 컴포넌트 형식으로 호출하는 방식을 살펴보았다.

이 문서에서는 Java Corba 서버 컴포넌트를 생성하는 방안과, 웹 서비스 형식으로 호출을 하기 위해 파워빌더 10 클라이언트를 사용하는 방식에 대하여 기술한 문서이다. Java Corba 서버 컴포넌트를 생성하는 방법은 8월호를 참고하기 바란다.


2. 생성된 Java Corba

* 아래 그림은 8월호에서 작성한 Java Corba 서버 컴포넌트를 생성하는 방식과 같은 과정으로 생성한 파일이다.



* 생성 기본 정보
- Create Web Application
     web_java

- Connection Name
     web_java_jdbc

- server name
     jdbc:sybase:Tds:*oca*host:9665

- Dll or C*ass Name
     com.sybase.jdbc2.jdbc.SybDriver

- Enter Package Name
     web_java_pack

- Component Name
     java_comp

- Java Class
     web_java_pack.java_compImpl

- Enter Method Name
     returnString

3. 웹 서비스로 Java컴포넌트 노출하기

앞에서 생성된 JavaCorba 컴포넌트를 웹서비스로 노출시키기 위해 EAServer Web Services 툴킷 (Eclipse)을 이용할 것이다.

1) Eclipse를 실행시킨다.

 

2) Sybase Web Services View를 선택하고, 해당 서버에 연결한다.


3) Other component 폴더, web_java_pack을 확장하고, java_comp를 선택하여 마우스 오른쪽 클릭을 한 후, Quicky Expose as Web Service를 선택한다.


4) 컴포넌트를 Webservices 로 Expose시키는 창이 뜨고, 완료가 되면, 성공하였다는 메시지가 발생된다.


5) Web Services 항목에서 마우스 오른쪽 클릭을 하여 팝업 메뉴의 Refreash를 선택한다.


6) web_java_pack_java_comp가 web Services집합인 ws에 등록되어진 화면을 볼 수가 있다.


7) 생성된 web_java_pack_java_comp 에서 마우스 오른쪽 클릭을 하여 팝업 매뉴의 View WSD*을 선택하면 해당 화면 오른쪽에 WSD*을 확인 할수 있다. 


또한, 해당 로컬서버(http://loclahost:8080/WebConso*e/)로 접속한뒤 WebConsole로 들어가 로그인을 한후 local Server에 등록되어 있는 web_java_pack_java_comp를 선택하면 WSDL을 확인해 볼수 있다. 경로로 들어가면 아래와 같은 화면을 볼수 있다. 여기서 localhost 란 PC 의 이름이다.


* http:// localhost:8080/ws/services/web_java_pack_java_comp?wsdl

 

4. WSDL파일을 이용한 파워빌더 프록시 만들기

파워빌더 클라이언트를 이용하여 웹서비스를 호출하기 위해 파워빌더에 있는 프록시 오브젝트를 생성해볼 것이다.

1) 파워빌더 10을 실행하고, 새로운 Workspace를 생성한후, 어플리케이션 오브젝트까지 만들어 준다.

* Workspace Name : PbClient
* Application Name : pbclient

2) 생성된 어플리케이션 오브젝트에 pbsoapclient100.pbd 파일을 추가한다. 추가하기 위해선 먼저 a_pbclient 타겟을 선택한후, 마우스 오른쪽 클릭을 하여 Properties..를 선택한다. 그 다음 Browse..를 선택하여 pbsoapclient100.pbd를 찾아 선택해 준다.



3) pbsoapclient100.pbd이 추가된 PbClient의 모습은 다음과 같다.
 

4) New a Project a Web Service Proxy Wizard 를 선택한다. 
 

5) WSDL File Name 부분에 4절에서 알아본 WSDL을 붙혀넣기 해준다. 
 

6) WSDL 파일에 서비스를 찾아 선택한다. 기본적으로 앞에서 생성한 JAVA_web_Comp가 선택되어진다. 


7) 서비스를 위한 포트를 선택한다. 역시 기본적으로 선택되어 진다.


8) 다음의 설정은 기본으로 두고 Next를 누르고 마지막으로 Finish를 선택하면 다음과 같은 Deploy 화면이 나오게 된다. 왼쪽 화면에서 설정한 기본 정보들을 확인해 볼수 있다.


9) Deploy를 선택하게 되면 아래 Output Window에 성공한 결과를 확인 할수 있다.


10) 과정을 마치고 나면 다음과 같이 System Tree부분에 추가가 된 것을 확인 해 볼수 있다.


11) 파워빌더 클라이언트에서 웹서비스를 호출하기 위해 해당 타겟에서 Window 오브젝트를 하나 생성하고 버튼 오브젝트를 하나를 올려 놓는다.


12) 생성한 버튼의 클릭 이벤트에 아래 스크립트를 작성한다.


* 작성 스크립트

SoapConnection lsc_SoapConn
string ls_soapResponse
long ll_result
web_java_pack_java_comp proxy_obj

// initialize
lsc_SoapConn = create SoapConnection

// Create proxy object
ll_result = lsc_SoapConn.CreateInstance(proxy_obj, "web_java_pack_java_comp”)

if ll_result = 0 then
 try 
   // Invoke service and display result
   ls_soapResponse = proxy_obj.returnString("EAS") 
   MessageBox("SOAP Response", ls_soapResponse) 
 catch ( SoapException e ) 
   // error hand*ing
   MessageBox ("Error", "Cannot invoke Web service." + " Exception info: " + e.text) 
 end try
else
  MessageBox ("Error: " + string(ll_result), "Unable to create proxy")
end if

// clean up
destroy lsc_SoapConn

13) 성공적인 실행결과는 다음과 같다.

 

Posted by 옹니미