응용프로그램은 디렉토리에 있는 현재의 모든 직원 레코드 목록을 표시합니다. 레코드는 JTable(employeesTable)에서 정렬 가능한 열(성, 이름, 전자 우편 및 직원 ID)과 함께 표시됩니다. 테이블에 대한 레코드를 가져오려면, 샘플 웹 서비스 데이터 소스에서 리턴된 데이터 오브젝트에 employeesTable을 바인드해야 합니다.
이 연습에서는 다음 두 단계를 완료해야 합니다.
employeesTable에 대한 로컬 데이터 오브젝트를 가져오려면 Visual Editor를 사용하여 데이터 소스를 응용프로그램에 추가하십시오. 데이터 소스는 샘플 웹 서비스 프록시에 연결하고 응용프로그램에 사용할 수 있는 서비스 메소드를 발견합니다. 그런 다음 데이터 소스에서 사용 가능한 getLightEmployeeRecord 서비스를 선택하십시오. 마지막으로 사용자 응용프로그램의 employeesTable을 행 데이터 오브젝트(lightEmployeeRecord)로 리턴되는 필드에 바인드하십시오.
Java Visual Editor의 내장 바인더 클래스를 사용하여 빠르고 쉽게 이 모든 데이터 소스 및 데이터 오브젝트를 작성할 수 있습니다. Visual Editor는 비주얼 구성요소를 데이터 팩토리에 바인드하는 대로 프로젝트에 생성되는 일반 인터페이스 및 클래스 세트를 제공합니다. 기본적으로 jve.generated 패키지에 바인더 클래스가 생성됩니다. Visual Editor는 추가로 응용프로그램 필요에 맞도록 사용자 정의하고 향상시킬 수 있는 일반 구현으로 바인더 클래스를 제공합니다. 이 학습서에서는 기본적이고 간단하지만 기본 바인더 클래스 사용의 유동성 및 강력한 기능에 대해 설명합니다.
요구사항: 이 연습을 시작하기 전에 다음 도움말 항목을 참조해 보십시오. 이 항목은 데이터 오브젝트, 데이터 소스, Java Visual Editor가 제공하는 바인더 외에 기능 및 로직에 대해 자세히 학습하는 데 도움이 될 수 있습니다.
이 학습서에서는 웹 서비스 데이터 소스, 몇 가지 유형의 데이터 오브젝트 및 몇 가지 유형의 바인더를 사용자 응용프로그램에서 사용합니다. 이러한 오브젝트의 인스턴스를 사용자 응용프로그램에 추가할 때 Visual Editor는 필요한 클래스를 사용자 프로젝트의 jve.generated 패키지에 추가합니다. 이 때 데이터 바인딩 로직을 확장하거나, 바꾸거나 다시 작성할 수 있습니다. Java Visual Editor는 사용자 응용프로그램이 사용 중인 데이터 오브젝트, 데이터 소스 및 바인더를 디자인 보기의 자유 양식 영역에 표시하여 바인더 오브젝트에 관한 시각적 지원을 제공합니다. Visual Editor는 선택한 오브젝트의 현재 바인더를 표시하기 위해 비주얼 구성요소와 데이터 오브젝트 및 데이터 소스 사이에 선을 그립니다.
다음 다이어그램은 비주얼 구성요소, 바인더, 데이터 오브젝트 및 데이터 소스가 상호작용하는 방법에 대한 간단한 개요입니다. 이 학습서에서 빌드할 응용프로그램은 약간 더 복잡하고 창조적으로 바인더를 사용합니다. 다음 다이어그램은 샘플 응용프로그램에서 빌드 중인 바인더, 데이터 오브젝트 및 데이터 소스를 정확히 표시한 것은 아닙니다.
그림 1. 비주얼 구성요소, 바인더, 데이터 오브젝트 및 데이터 소스 사이의 샘플 관계를 보여주는 다이어그램
그림 1에서, 각 비주얼 구성요소에는 데이터 오브젝트(단추의 경우에는 데이터 소스)와 연관시키는 자체 바인더가 있습니다. 텍스트 필드의 바인더는 데이터 오브젝트의 특정 특성에 필드를 바인드합니다. 이 다이어그램의 데이터 오브젝트와 행 데이터 오브젝트 모두 데이터 소스에서 서비스에 대한 직접 호출을 통해 데이터를 가져옵니다. 텍스트 필드의 데이터 오브젝트는 테이블에서 선택한 행의 키 값을 Service2를 호출하기 위한 인수로 사용합니다. Service2는 테이블에서 선택한 행에 대한 더 많은 정보를 포함하고 있을 수 있는 전체 레코드를 리턴합니다. 이 전체 레코드는 다시 Service3을 호출할 때 단추의 조치 바인더에 대한 인수로 사용합니다. Service3은 필드에 입력한 값을 갱신하는 메소드일 수 있습니다. 데이터 오브젝트, 데이터 바인더 및 데이터 소스에 대한 자세한 설명은 앞에 제공된 링크를 참조하십시오.
서버에서 실행 중인 웹 서비스에 대해 작업하려면 Java 응용프로그램이 상호작용할 Java 프록시나 클라이언트가 필요합니다. WSDL 파일을 사용할 경우, 웹 서비스 클라이언트 마법사를 사용하여 Java 프로젝트에 Java 프록시를 생성할 수 있습니다. MyDirectory 프로젝트에는 이 프록시를 생성하기 위해 사용할 EmployeeDirectory.wsdl 파일이 포함되어 있습니다. Java 프록시를 생성한 후 웹 서비스를 나타내는 데이터 소스를 작성하고 바인딩 비주얼 구성요소를 시작할 수 있습니다.
중요: 이 연습에서 사용하는 WSDL 파일은 WebSphere Application Server의 로컬 설치 위치에 웹 서비스를 전개하고 로컬 호스트(http://localhost:9080)의 디폴트 포트를 사용한 것으로 가정합니다. EAR 파일을 다르게 전개했으면 진행하기 전에 적절하게 WSDL 파일을 편집해야 합니다.
프로젝트에서 웹 서비스 Java 프록시를 생성하려면 다음을 수행하십시오.
employeesTable은 이 응용프로그램에서 바인드하는 첫 번째 비주얼 구성요소이므로 방금 프로젝트에 추가한 샘플 웹 서비스 프록시를 지시하는 데이터 소스를 작성해야 합니다. 나중 연습에서 다른 비주얼 구성요소를 바인드할 때 이 데이터 소스를 재사용합니다. 이 단계에서는 웹 서비스 데이터 소스와 lightEmployeeRecordRows 데이터 오브젝트를 추가합니다.
직원 테이블을 바인드하려면 다음을 수행하십시오.
팁: 테이블을 바인드하는 중이므로 새 데이터 소스 데이터 오브젝트 대화 상자는 행 데이터 오브젝트를 리턴하는 서비스만 표시합니다. 이 경우 getLightEmployeeRecords() 메소드는 오브젝트 배열을 리턴하는 유일한 사용 가능한 서비스입니다.
팁: 테이블 바인드를 완료하고 나면 항상 바인딩 특성으로 돌아가서 언제든지 열의 이름을 바꾸거나 순서를 재지정할 수 있습니다.
employeesTable이 JRowTableBinder를 사용하여 lightEmployeeRecordRows 데이터 오브젝트에
바인드되었습니다. 자유 양식 영역에서
lightEmployeeRecordRows 데이터 오브젝트를 클릭하면 Visual Editor는
데이터 오브젝트에서 테이블로 선을 그립니다. 이 선에서
JRowTableBinder는 테이블 바인더 아이콘()으로 표시됩니다. 다른 선은 데이터 오브젝트가
webServiceDataSource를 해당 데이터 소스로 사용한다는 것을 표시합니다.
프로젝트 및 응용프로그램 변경사항을 조사하십시오. 이 연습 동안 웹 서비스 데이터 소스, 행 데이터 오브젝트, employeesTable을 행 데이터 오브젝트에 바인드하는 바인더를 추가했습니다. Java Visual Editor가 생성한 모든 바인더 클래스를 보유하는지 프로젝트에서 작성된 새 패키지(jve.generated)를 조사하십시오. 웹 서비스의 Java 프록시를 보유하는 새 패키지(directory.service)도 살펴보십시오.
이제 응용프로그램을 실행하면 직원 테이블은 웹 서비스에 의해 기존 직원 레코드로 채워집니다.