< 이전 | 다음 >

학습 2.2: 직원 테이블을 웹 서비스 데이터 소스에 바인드

회사 디렉토리 응용프로그램은 디렉토리에 있는 현재의 모든 직원 레코드 목록을 표시합니다. 레코드는 JTable(employeesTable)에서 정렬 가능한 열(성, 이름, 전자 우편 및 직원 ID)과 함께 표시됩니다. 테이블에 대한 레코드를 가져오려면 샘플 웹 서비스 데이터 소스에서 리턴된 데이터 오브젝트에 employeesTable을 바인드해야 합니다.

데이터 오브젝트, 데이터 소스 및 바인더의 개요

작업할 employeesTable의 로컬 데이터 오브젝트를 가져오기 위해 Visual Editor를 사용하여 데이터 소스를 응용프로그램에 추가합니다. 데이터 소스는 샘플 웹 서비스 프록시에 연결하고 응용프로그램에 사용할 수 있는 서비스 메소드를 발견합니다. 그런 다음, 데이터 소스에서 사용 가능한 getLightEmployeeRecord 서비스를 선택하십시오. 마지막으로 사용자 응용프로그램의 employeesTable을 행 데이터 오브젝트(lightEmployeeRecord)로 리턴되는 필드에 바인드합니다.

Java Visual Editor의 내장 바인더 클래스를 사용하여 빠르고 쉽게 이 모든 데이터 소스 및 데이터 오브젝트를 작성할 수 있습니다. Visual Editor는 비주얼 구성요소를 데이터 팩토리에 바인드하는 대로 프로젝트에 생성되는 일반 인터페이스 및 클래스 세트를 제공합니다. 기본적으로 jve.generated 패키지에 바인더 클래스가 생성됩니다. Visual Editor는 추가로 응용프로그램 필요에 맞도록 사용자 정의하고 향상시킬 수 있는 일반 구현으로 바인더 클래스를 제공합니다. 이 학습서에서는 기본적이고 간단하지만 기본 바인더 클래스 사용의 유동성 및 강력한 기능에 대해 설명합니다.

중요사항: 이 연습을 시작하기 전에 다음 도움말 항목을 꼭 읽어 보는 것이 좋습니다. 이 항목은 데이터 오브젝트, 데이터 소스, Java Visual Editor가 제공하는 바인더 외에 기능 및 로직에 대해 자세히 학습하는 데 도움이 될 수 있습니다.
  • 데이터 바인더 개요
  • 바인더 API 참조

이 학습서에서는 웹 서비스 데이터 소스, 몇 가지 유형의 데이터 오브젝트 및 몇 가지 유형의 바인더를 사용자 응용프로그램에서 사용합니다. 이러한 오브젝트의 인스턴스를 응용프로그램에 추가할 때 Visual Editor는 필요한 클래스를 프로젝트의 jve.generated 패키지에 추가합니다. 이 때 데이터 바인딩 로직을 확장하거나, 바꾸거나 다시 작성할 수 있습니다. Java Visual Editor는 사용자 응용프로그램이 사용 중인 데이터 오브젝트, 데이터 소스 및 바인더를 디자인 보기의 자유 양식 영역에 표시하여 바인더 오브젝트에 관한 시각적 지원을 제공합니다. Visual Editor는 선택한 오브젝트의 현재 바인더를 표시하기 위해 비주얼 구성요소와 데이터 오브젝트 및 데이터 소스 사이에 선을 그립니다.

다음 다이어그램은 비주얼 구성요소, 바인더, 데이터 오브젝트 및 데이터 소스가 상호작용하는 방법에 대한 간단한 개요입니다. 이 학습서에서 빌드할 응용프로그램은 약간 더 복잡하고 창조적으로 바인더를 사용합니다. 다음 다이어그램은 샘플 응용프로그램에서 빌드 중인 바인더, 데이터 오브젝트 및 데이터 소스를 정확히 표시한 것은 아닙니다.

그림 1. 다음 다이어그램은 비주얼 구성요소, 바인더, 데이터 오브젝트 및 데이터 소스 간의 샘플 관계를 보여줍니다.다음 다이어그램은 비주얼 구성요소, 바인더, 데이터 오브젝트 및 데이터 소스 간의
관계를 보여줍니다.

그림 1에서, 각 비주얼 구성요소에는 데이터 오브젝트(단추의 경우에는 데이터 소스)와 연관시키는 자체 바인더가 있습니다. 텍스트 필드의 바인더는 데이터 오브젝트의 특정 특성에 필드를 바인드합니다. 이 다이어그램의 데이터 오브젝트와 행 데이터 오브젝트 모두 데이터 소스에서 서비스에 대한 직접 호출을 통해 데이터를 가져옵니다. 텍스트 필드의 데이터 오브젝트는 테이블에서 선택한 행의 키 값을 Service2를 호출하기 위한 인수로 사용합니다. Service2는 테이블에서 선택한 행에 대한 더 많은 정보를 포함하고 있을 수 있는 전체 레코드를 리턴합니다. 이 전체 레코드는 다시 Service3을 호출할 때 단추의 조치 바인더에 대한 인수로 사용합니다. Service3은 필드에 입력한 값을 갱신하는 메소드일 수 있습니다. 데이터 오브젝트, 데이터 바인더 및 데이터 소스에 대한 자세한 설명은 앞에 제공된 링크를 참조하십시오.

제공된 WSDL 파일을 사용하여 프로젝트에서 웹 서비스 Java 프록시 생성

서버에서 실행 중인 웹 서비스에 대해 작업하려면 Java 응용프로그램이 상호작용할 Java 프록시나 클라이언트가 필요합니다. WSDL 파일을 사용할 경우, 웹 서비스 클라이언트 마법사를 사용하여 Java 프로젝트에 Java 프록시를 생성할 수 있습니다. MyDirectory 프로젝트에는 이 프록시를 생성하기 위해 사용할 EmployeeDirectory.wsdl 파일이 포함되어 있습니다. Java 프록시를 생성한 후 웹 서비스를 나타내는 데이터 소스를 작성하고 바인딩 비주얼 구성요소를 시작할 수 있습니다.

중요사항: 이 연습에서 사용하는 WSDL 파일은 WebSphere Application Server의 로컬 설치에 웹 서비스를 배치하고 로컬 호스트(http://localhost:9080)의 기본 포트를 사용했다고 가정합니다. EAR 파일을 다르게 배치했으면 진행하기 전에 적절하게 WSDL 파일을 편집해야 합니다.

프로젝트에서 웹 서비스 Java 프록시를 생성하려면 다음을 수행하십시오.

  1. 기본 메뉴에서 파일 > 새로 작성 > 기타를 클릭한 후 웹 서비스 > 웹 서비스 클라이언트 마법사를 선택하십시오. 웹 서비스 카테고리가 표시되지 않으면 모든 마법사 표시를 선택하십시오.
  2. 다음과 같이 마법사를 사용하여 웹 서비스 클라이언트를 정의하십시오.
    1. 서비스 정의의 경우, MyDirectory 프로젝트에 제공된 WSDL 파일(/MyDirectory/EmployeeDirectory.wsdl)을 입력하십시오.
    2. 클라이언트 유형 필드에서 Java 프록시를 선택하십시오.
    3. 슬라이더 막대를 클라이언트 배치로 설정하십시오.
    4. 서버가 실행 중이며 웹 서비스 런타임이 실행 중인 서버에 대해 적절히 설정되었는지 확인하십시오. 이 학습서는 IBM WebSphere JAX-RPC 런타임을 사용하여 WebSphere v6.0 및 WebSphere v6.1에서 테스트되었습니다.
    5. Java 프록시 클라이언트가 MyDirectory 프로젝트로 출력되는지 확인하십시오.

    웹 서비스 클라이언트 마법사

  3. 완료를 클릭하십시오. 웹 서비스 클라이언트 마법사는 Java 프록시를 생성한 후 프로젝트의 새 패키지(directory.service)에 추가합니다.

employeesTable을 웹 서비스에서 리턴된 행 데이터 오브젝트에 바인드

employeesTable은 이 응용프로그램에서 바인드하는 첫 번째 비주얼 구성요소이므로 방금 프로젝트에 추가한 샘플 웹 서비스 프록시를 지시하는 데이터 소스를 작성해야 합니다. 나중 연습에서 다른 비주얼 구성요소를 바인드할 때 이 데이터 소스를 재사용합니다. 이 단계에서는 웹 서비스 데이터 소스와 lightEmployeeRecordRows 데이터 오브젝트를 추가합니다.

직원 테이블을 바인드하려면 다음을 수행하십시오.
  1. Java Bean 보기 또는 디자인 보기에서 employeesTable을 선택하십시오. (해당되는 JScrollPane 상위 요소는 선택하지 마십시오.) 바인드라는 레이블의 작은 탭이 디자인 영역에서 employeesTable의 맨 위에 표시됩니다.

    그래픽 캔버스의 JTable에서 탭 바인드

  2. employeesTable에서 바인드 탭을 클릭하십시오. 대신 employeesTable을 마우스 오른쪽 단추로 클릭한 다음 바인딩 특성을 선택할 수도 있습니다.
  3. 사용자 응용프로그램에는 데이터 오브젝트가 없으므로 새로 추가해야 합니다. 새 데이터 소스 데이터 오브젝트를 클릭하십시오.
  4. 소스 유형 필드에서 웹 서비스를 선택하십시오.
  5. 아직 웹 서비스 데이터 소스를 사용자의 응용프로그램에 추가하지 않았으므로 지금 추가해야 합니다. 데이터 소스 필드 옆에 있는 ... 단추를 클릭하여 웹 서비스 데이터 소스 추가 대화 상자를 여십시오. 이 대화 상자는 프로젝트에서 사용 가능한 웹 서비스 클라이언트나 프록시를 찾습니다.
  6. EmployeeDirectory 웹 서비스를 선택하고 완료를 클릭하십시오. 다음과 같이 새 데이터 소스가 DirectoryApp.java 파일에 추가됩니다.

    웹 서비스 데이터 소스 추가 대화 상자

  7. 새 데이터 소스 데이터 오브젝트 대화 상자의 소스 서비스 필드에서 getLightEmployeeRecords()를 선택하고 새 데이터 오브젝트의 기본 이름으로 lightEmployeeRecordRows를 사용하십시오. 이 서비스 메소드에 필요한 매개변수는 없습니다. 확인을 클릭하십시오. 새 데이터 오브젝트가 작성되어 디자인 보기의 자유 양식 영역에 표시됩니다.

    새 데이터 소스 데이터 오브젝트 대화 상자

    팁: 테이블을 바인드하는 중이므로 새 데이터 소스 데이터 오브젝트 대화 상자는 행 데이터 오브젝트를 리턴하는 서비스만 표시합니다. 이 경우 getLightEmployeeRecords() 메소드는 오브젝트 배열을 리턴하는 유일한 사용 가능한 서비스입니다.
  8. 테이블 데이터 바인딩 대화 상자에서 lightEmployeeRecordRows 데이터 오브젝트를 선택하십시오.
  9. employeesTable에 표시하려는 lightEmployeeRecordRows 데이터 오브젝트의 특성을 선택하십시오.

    테이블 데이터 바인딩 대화 상자

    1. 이중 화살표 이중 화살표 단추 단추를 클릭하여 모든 오브젝트 특성을 테이블 열 목록에 추가하십시오.
    2. 위로 및 아래로 화살표를 사용하여 위에서 아래 순(즉, lastName, firstName, email, employeeID)으로 열을 배열하십시오.
    3. 열 제목(, 이름, 전자 우편, 직원 ID)의 이름을 변경하십시오.
      팁: 테이블 바인드를 완료하고 나면 항상 바인딩 특성으로 돌아가서 언제든지 열의 이름을 바꾸거나 순서를 재지정할 수 있습니다.
    4. 확인을 클릭하십시오.
employeesTable이 JRowTableBinder를 사용하여 lightEmployeeRecordRows 데이터 오브젝트에 바인드되었습니다. 자유 양식 영역에서 lightEmployeeRecordRows 데이터 오브젝트를 클릭하면 Visual Editor는 데이터 오브젝트에서 테이블로 선을 그립니다. 이 선에서 JRowTableBinder는 테이블 바인더 테이블 바인더 아이콘 아이콘으로 표시됩니다. 다른 선은 데이터 오브젝트가 webServiceDataSource를 해당 데이터 소스로 사용한다는 것을 표시합니다.

JTable의 바인더 선 보기

학습 체크포인트

프로젝트 및 응용프로그램 변경사항을 확인하십시오. 이 학습에서는 웹 서비스 데이터 소스, 행 데이터 오브젝트, employeesTable을 행 데이터 오브젝트에 바인드하는 바인더를 추가했습니다.

Java Visual Editor가 생성한 모든 바인더 클래스를 보유하는지 프로젝트에서 작성된 새 패키지(jve.generated)를 조사하십시오. 웹 서비스의 Java 프록시를 보유하는 새 패키지(directory.service)도 확인하십시오. 이 학습에서 배운 내용을 설명하거나 요약하십시오.

MyDirectory 프로젝트의 패키지

이제 회사 디렉토리 응용프로그램을 실행하면 직원 테이블은 웹 서비스를 통해 기존 직원 레코드로 채워집니다.

< 이전 | 다음 >