반응형
Introductioin

Database AdapterMediator 컴포넌트를 이용한 카드 검사 서비스를 만들겠습니다.



Creation a new application

메뉴에서 File → New 클릭

왼쪽 트리메뉴에서 General 선택 - Generic Application 선택



Application Name : CreditCardValidation

Next 클릭



어플리케이션의 프로젝트를 만듭니다.

한 어플리케이션에 여러개의 프로젝트를 만들 수 있습니다.

Project Name : validationForCC

왼쪽 Available 목록 중에 SOA 를 선택해서 오른쪽으로 옮깁니다.



아무것도 없는 빈 프로젝트로 생성합니다.



첫 프로젝트를 만들었습니다. 두둥!

이클립스랑 비슷하면서도 다른 -_- FlexBuilder 랑 조금 더 비슷한듯 하네용 ㅎㅎ





Adding the database adapter

오른쪽 컴포넌트 중에서 Database Adapter(이하 DbAdapter) 를 External References 공간에 드래그 앤 드랍 합니다.




Service Name : getCreditValidation



크게 Connection 부분과 JNDI Name, Data Source 부분이 있는데..

Connection 지금 현재 이 DbAdapter 를 세팅하는데 필요한 디비의 정보고,

JNDI Name 이나 Dat Source 는 실제 서버에 배치 시킨 후 사용하게 될 리소스 입니다.

곧! Connection 의 디비 정보와 JNDI Name(또는 Data Source)의 정보가 똑같아야 합니다.



데이터베이스 정보를 입력합니다.

Test Connection 클릭 했을때 "Success!" 가 떨어지면 ㅇㅋ!

잘 보면 전 튜토리얼에서 설정한 Data Source 설정과 같다는 것을 알 수 있습니다.



OK 누르게 되면 JNDI Name 에 eis/DB/[Connection이름] 이 자동으로 입력된 것을 알 수 있습니다.

eis/DB/[이름] 은 전 튜토리얼에서 DbAdapter 설정한 JNDI Name 이라는 것을 알 수 있습니다.



어떤 작업을 할건지 선택합니다.

Perform an Operation on a Table 선택 - Select만 체크



어떤 테이블의 정보를 가져올 것인지 선택합니다.

아직 등록된 테이블 정보가 없으므로 Import Tables 클릭



Query 클릭하면 테이블의 목록을 가져옵니다.

Available 리스트에서 CREDITCARDINFO 테이블을 오른똑으로 선택합니다.



테이블이하나 선택되었습니다.



기본키를 지정합니다. CCNUMBER 칼럼을 선택



테이블 관계를 설정합니다. 관계 없으므로 -_- Next 클릭



어떤 칼럼만 가져올지 필터링 합니다. status만 체크



조건을 정의하는 부분입니다.

파라미터(입력)를 하나 추가합니다. Add 클릭 ccnb 입력

Edit 클릭



조건을 만듭니다.

Add 클릭

Query Key : ccnumber
Operator : EQUAL(=)
Second Argument : Parameter 선택



ccnb 파라미터를 하나 받아서 select 쿼리를 날리는 쿼리가 완성되었습니다. Finish 클릭



Database Adapter가 만들어졌습니다.





Adding the Meditator Component

이번에는 Mediator 컴포넌트를 Components 영역에 드래그 앤 드랍 합니다.

Mediator(중재자)는 분기, 값 전달 같은걸 합니다. (맞나?...)



Name : RouteRequest
Templete : Define Interface Later



이번에는 Web Service 컴포넌트를 Exposed Services 영역에 드래그 앤 드랍 합니다.

Web Service 컴포넌트는 외부와의 입/출력을 담당하는 컴포넌트 입니다.



Name : getStatusByCC

원래는 입/출력 스키마를 다 만들어줘야 하지만

이번 튜토리얼은 Web Service 가 목적이 아니므로 기존의 스키마를 불러옵니다.

WSDL URL 옆의 Generate WSDL from schema(s) 버튼(+)을 클릭합니다.



Request 탭에서 URL 오른쪽의 browse for schema file 아이콘 클릭



Import Schema File... 버튼 클릭



Browse Resources... 로 스키마 파일을 찾습니다.



OK 클릭



Maintain original directory structure for imported files 체크 해제

OK 클릭



Type 에 creditcheck.xsd 가 추가된 것을 볼 수 있습니다.

creditcardStatusReqeust 선택



이번에는 Reply 탭에서 creditcardStatus 를 선택합니다.

한번 스키마 파일을 불러(import)왔기 때문에 다시 파일을 일지 않고 선택하면 됩니다.



Fault 탭도 마찬가지로 error를 선택해줍니다.



OK 클릭



이제 getStatusByCC 와 RouteRequest 를 이어줍니다.



RouteRequest 와 getCreditValidation 을 이어줍니다.



잘 이어졌습니다~! >_<





Adding a transformation to the Mediator component

getStatusByCC 에서 받은(request) 입력에서 getCreditValidtion의 입력으로,

getCreditValidation 에서 나온 출력에서 getStatusByCC의 출력으로 값을 매핑시켜주는 Mediator를 설정해보겠습니다.


RouteRequest 를 더블클릭합니다.




첫번째 Transform Using 필드(입력 매핑)에서 오른쪽의

Select an existing mapper file or create a new one 버튼을 클릭합니다.




Create New Mapper File 을 선택하고 OK 클릭




왼쪽(getStatusByCC)의 inp1:CCNumber를 오른쪽(getCreditValidation)의 top:ccnb까지 드래그 합니다.




다시 RouteRequest Mediator. 두번째 Transform Using 필드(출력 매핑)에서 오른쪽의

Select an existing mapper file or create a new one 버튼을 클릭합니다.





입력 매핑과 똑같은 방법으로

getCreditValidation의 top:status와 getStatusByCC의 inp1:creditcardStatus를 이어줍니다.




모두 저장 합시다.



DeployIng the application

일단 서버(어플리케이션 커넥션)를 하나 등록해야 합니다.

New... (Ctrl-N)




왼쪽 카테고리에서 Connection을 선택 오른쪽 아이템 중에 Application Server Connection을 선택합니다.




커넥션 이름을 지정합니다.




커넥션의 Username과 Password를 지정합니다.




어드민 서버(WebLogic)의 정보와 도메인명을 입력합니다.




Test Connectino 에서 모두 "success" 가 나와야 합니다.




서버 커낵션을 하나 만들었습니다.



여기까지는 한번만 하면 됩니다.


프로젝트에서 마우스 오른쪽 버튼 - Deploy - [프로젝트명]... 클릭




Deploy to Application Server 선택




Overwrite any existing composites with the sam revision ID. 체크 해제

배치를 올릴때마다 버젼 번호가 붙게 되는데 체크를 하게 되면 전의 번호와 같은 번호로 덮어서 배치하게 됩니다.

개발용으로 할때는 하나로 계속 하는게 좋겠죠? 안좋나 -_-;;




아까 전에 만들었던 서버 커넥션을 선택합니다.




SOA 서버 선택




배치 요약 확인




컴파일이 정상적으로 끝나고, 배치를 시작할때 웹로직 암호를 물어봅니다.




배치가 되면 대충 이런 메세지가 콘솔로 나오게 됩니다.

[01:19:02 PM] >>>>  Warning:  Unable to determine the target platform from the Profile.  Using default...
[01:19:02 PM] ----  Deployment started.  ----
[01:19:02 PM] Target platform is  (Weblogic 10.3).
[01:19:02 PM] Running dependency analysis...
[01:19:02 PM] Building...
[01:19:10 PM] Deploying profile...
[01:19:10 PM] Updating revision id for the SOA Project 'validationForCC.jpr' to '1.0'..
[01:19:10 PM] Wrote Archive Module to C:\JDeveloper\mywork\CreditCardValidation\validationForCC\deploy\sca_validationForCC_rev1.0.jar
[01:19:10 PM] Deploying sca_validationForCC_rev1.0.jar to soa_server1 [Antop-PC:8001] 
[01:19:10 PM] Processing sar=/C:/JDeveloper/mywork/CreditCardValidation/validationForCC/deploy/sca_validationForCC_rev1.0.jar
[01:19:10 PM] Adding sar file - C:\JDeveloper\mywork\CreditCardValidation\validationForCC\deploy\sca_validationForCC_rev1.0.jar
[01:19:10 PM] Preparing to send HTTP request for deployment
[01:19:10 PM] Creating HTTP connection to host:Antop-PC, port:8001
[01:19:10 PM] Sending internal deployment descriptor
[01:19:10 PM] Sending archive - sca_validationForCC_rev1.0.jar
[01:19:31 PM] Received HTTP response from the server, response code=200
[01:19:31 PM] Successfully deployed archive sca_validationForCC_rev1.0.jar to soa_server1 [Antop-PC:8001] 
[01:19:31 PM] Elapsed time for deployment:  29 seconds
[01:19:31 PM] ----  Deployment finished.  ---- 



Testing the application

Enterprise Manager에 접속 - validationForCC 선택




테스트 클릭




카드번호를 입력 후 웹 서비스 테스트 클릭




결과가 나왔습니다. 두둥!

메시지 흐름 추척 실행 링크를 누르면 어떤 순서로 실행 되었는지 확인할 수 있습니다.




처리 순서가 나옵니다. 여기서 또 파란색 글씨 부분을 누르면 그 컴포넌트에서 어떻게 처리 되었는지 볼 수 있습니다.



파란색 링크(RouteRequest)를 클릭하면 더 자세한 정보를 볼 수 있습니다.



아래는 실제 테이블에 들어있는 데이터 입니다.







반응형
//