2010-07-19 6 views
3

Roo에서 GWT의 최신 통합과 함께 Spring Roo/GWT 앱을 개발하려고합니다.Spring Roo와 GWT를 함께 가져 오는 방법

스캐 폴딩을 작동시키는 것은 매우 간단하지만 RPC가 어떻게 작동하는지 실제로 이해하지 못합니다.

누군가가 Spring Roo와 GWT에서 클라이언트/서버를 연결하는 간단한 서비스를 수행하는 간단한 예제를 제공 할 수 있습니까?

리소스를 찾을 수 없어서 매우 도움이 될 것입니다.

들으 & 관련, 플로

답변

0

당신이 언급하는 기능은 (정도 구글의 사람은 우리가 믿고 싶어) 무거운 현재 개발 중에) 그래서 API와 내부 작업은 최종이 아니며 것이다 GWT 2.1 최종본 (이것은 Google IO 2010 동안 GWT sessions 동안 몇 번 언급되었다) 이전에 여전히 변할 가능성이 큽니다. 그러나 트렁크에있는 Bikeshed sample을 탐색하여 작동하는 (잘하면;)) 예제를 볼 수 있습니다. 최신 (?) 샘플 (Google IO에서 약속 한 요리 책)이 포함 된 것으로 보이는 2.1 branch도 있습니다.
개인적으로 GWT에서 작업 할 때까지 새 RPC 모델로 코드를 전환하는 것이 좋습니다.) (하지만 이제는 일반적인 생각에 익숙해지는 것이 좋습니다. 그들은 모든 것을 : D로 바꿀 것입니다.

7

플로, 당신은 아예 구글 웨이브하지만, 그 현재의 노력 빨리를 유지하는 하나 개의 장소가 될 것 같다 않는 경우에 확실하지

. 구체적으로이 웨이브는 대중에게 공개됩니다.RequestFactory Wave

RequestFactory API에 대한 세부 정보 (잘 알려진 세부 정보)가 포함되어 있습니다.

기본 아이디어는 도메인 모델 개체가 서버 쪽과 클라이언트 쪽에서 필요하다는 것입니다. Hibernate를 사용하면 클래스 파일에 문제가 발생할 수 있으며 사람들은 두 세트의 모델 객체를 가지고 있으며 클라이언트 GWT-RPC와 서버 측 모델 객체 사이에서 서버 요청과 마샬링/언 마샬링을 수행 할 수 있습니다. 이상적인 해결책은 아닙니다. 동일한 모델 객체를 사용할 수 있다고하더라도 RPC의 오버 헤드는 부담입니다.

RequestFactory를 입력하면 Google 엔지니어가 가치가있는 금액을받을 것으로 예상됩니다. .roo (특히 ApplicationRequestFactory.java)에서 생성 된 샘플 코드를 살펴보십시오.

package com.springsource.extrack.gwt.request; 

import com.google.gwt.requestfactory.shared.RequestFactory; 

public interface ApplicationRequestFactory extends RequestFactory { 
    ReportRequest reportRequest(); 
    ExpenseRequest expenseRequest(); 
    EmployeeRequest employeeRequest(); 
} 

각 도메인 개체에 대한 요청 방법을 제공하는 인터페이스입니다. 프로젝트에 정의 된이 클래스의 구현은 없습니다. 영리 도메인 클래스에 대한 참조를 포장하는 제네릭을 사용하고 당신이 ApplicationEntityTypesProcessor.java을 보게 될 com.springsource.extrack.gwt.request 패키지 내에서

final ApplicationRequestFactory requestFactory = 
    GWT.create(ApplicationRequestFactory.class); 
requestFactory.init(eventBus); 

: 그것은 GWT.create에 전화 (...)으로의 EntryPoint에서 인스턴스화 프레젠테이션의 뒷부분에서 사용할 수 있습니다. 나머지 패키지는 각 모델 객체에 대한 이벤트 및 핸들러입니다.

구체적으로 각 개체 네 자동으로 생성 된 클래스가있다 :

  • EmployeeRecord.java - 이것은 도메인 개체 DTO이다.
  • EmployeeRecordChanged.java - 이것은 후크 메소드 onEmployeeChanged를 제공하는 RecordChanged 이벤트입니다.
  • EmployeeChangedHandler.java - onEmployeeChanged의 특정 동작이 필요할 때 구현되는 인터페이스입니다.
  • EmployeeRequest.java - ApplicationRequestFactory가 주어진 객체에 대한 다양한 액세스 메소드를 패키지하기 위해 사용하는 인터페이스입니다.

모든 것을 지원하기 위해 장면 뒤에 많은 코드가 생성되어 있습니다. 그리고 M1에서 M2로 GWT 프로젝트에서 보이는 것에서 많은 부분이 제거되었습니다. 더 많은 변화가있을 것으로 기대하지만, M1에서 M2만큼 격렬하지는 않습니다.

마지막으로 이러한 이벤트는 UI 패키지와 마찬가지로 도메인과 UI를 연결하는 데 사용할 수 있습니다. ReportListActivity.java :

public void start(Display display) { 
    this.registration = eventBus.addHandler(ReportRecordChanged.TYPE, new ReportChangedHandler() { 
     public void onReportChanged(ReportRecordChanged event) { 
      update(event.getWriteOperation(), event.getRecord()); 
     } 
    }); 
    super.start(display); 
} 

자세한 내용은 웨이브를 참조하십시오. 또한 expenses.roo는 Places를 사용하는 방법을 보여 주며 다소 매끄러운 Activity 프레임 워크를 가지고 있습니다. 행복한 GWTing.

감사합니다.

관련 문제