2012-02-01 3 views
4

내 응용 프로그램은 GWT-RPC를 사용하여 서버와 통신합니다. RPC 레이어를 변경하지 않고 JSON을 사용하여 내 데이터를 투명하게 serialzie 처리 할 수 ​​있습니까?GWT RPC를 JSON으로 변환

IMHO UI에서 자동 변환기 코덱을 사용하여 직렬 변환기를 변경하면이 문제를 해결할 수 있습니다.

왜 필요합니까?

  • 나는 크로스 도메인 RPC 내가 서버 측에 추가 레이어를 제공하지 않고 비 GWT-응용 프로그램에서 서버 측 호출 할
  • 호출을하고 싶다.
+1

이것이 제가 GWT-RPC에서 완전히 전환 한 이유입니다. 이제 GWT의 AutoBean 및 Request 클래스를 사용하고 난 후회하지 않았습니다. –

답변

1

이것은 어려운 작업이 될 것입니다. 나는 serializer가 변경 될 것이라고 생각하지 않는다. GWT-RPC serializer는 스트림 (기본적으로 서버에서 보낸 데이터는 실제로 JSON 형식이지만 GWT-RPC에서만 구문 분석 될 수 있음)과 같이 입력을 사용하고있다. 파싱과 객체 직렬화/직렬화 해제를위한 코드를 생성하는 완전히 새로운 생성기를 만들어야합니다. AutoBean 프레임 워크는이 경우 매우 유용 할 수 있습니다. 결국 GWT-RPC 서비스를 사용하는 현재 코드를 실제로 변경하지 않고 GWT-RPC 직렬화를 다른 프로토콜로 마이그레이션 할 수 있어야합니다.

가장 큰 문제는 도메인 간 메시징입니다. 일반적으로 JSONP를 사용하지만 문제는 JSONP가 기본적으로 GET 요청 만 허용한다는 것입니다. 다른 서버에 많은 양의 데이터를 보내야하는 경우 모든 요청을 단일 요청에 적용하지 못할 수도 있습니다. 크로스 도메인 문서 메시징 (예 : 원격 서버에서 특수한 통신 자바 스크립트를로드하는 iframe을 열고, postMessage을 통해 서비스의 프록시로이 iframe을 사용합니다.)하지만이 기능은 IE7에서 지원되지 않습니다. .

3

UPDATE 난 그냥

http://code.google.com/p/gwt-rpc-plus/에서보세요 없지만 더 이상 유지의 (이 리트, 안드로이드 팀에 의해 사용되는 코드 리뷰 도구의 일부로서) 적극적으로 유지 http://code.google.com/p/gerrit/source/browse/README?repo=gwtjsonrpc 우연히 발견 ..

정말 필요로하고 GWT-RPC에서 벗어나고 싶지 않다면 GWT의 serializer를 대체 할 수 있어야합니다. 바로 deRPC (com.google.gwt.rpc)가하는 일입니다. 표준 GWT-RPC (com.google.gwt.user.rpc)이지만 그 이상을 수행해야합니다 (즉, 런타임시 반영이 없기 때문에 클라이언트 쪽의 직렬화 코드 생성).

+0

좋은 프로젝트, 나는 그것을 시도 할 것이다. –