문제

현재 사용하는 GWT 응용 프로그램이 있습니다 RequestBuilde 내가 가진 서블릿에 메시지를 보내려면 POST 그리고 GET)) 및 내 서블릿 (in doPost 그리고 doGet) "Servlets 3.0 사양을 사용하여 수행됩니다) 요청을"일시 정지 "하여 큐에 추가합니다.
또한 백그라운드에서 실행되는 데몬 스레드가 있으며 새 데이터가있을 때 요청을 "재생"합니다.
이것은 지금 당장 문자열을 보내고 있다는 사실을 제외하고는 저를 위해 잘 작동하며 RPC 메커니즘을 사용하여 객체를 보내고 싶습니다.
내 질문은 이것입니다 :
내가 만들어 내면 myServiceImpl 확장되는 수업RemoteServiceServlet 어떻게 처리해야합니까? doPost 그리고 doGet 전혀?
비동기 지원을 활용하라는 요청을 일시 중지해야합니다. 어디에서 이루어져야합니까? 나는 어쩌면 전화 할 것입니다 this.getThreadLocalRequest() 내 rpc 메소드의 메소드 myServiceImpl 수업이지만 그것이 얼마나 현명한 지 잘 모르겠습니다.
GWT가 해당 비동기 인터페이스의 클라이언트 쪽에서 호출을 어떻게 처리하는지 이해조차 확신하지 못합니다. 우연히 전화하십시오 doGet 예를 들어 서블릿의 경우 필요한 RPC 메소드를 호출하는지 확인하십시오.
이 RPC 비즈니스가 어떻게 작동하는지 정확히 어떻게 더 자세한 기술 정보를 찾을 수 없다는 것만으로도 죄송합니다.
대출 손을 감사합니다
Ittai

도움이 되었습니까?

해결책 2

당시의 주요 오해는 GWT RPC가 서블릿 메커니즘을 기반으로한다는 사실과 관련이 있다고 생각하며, 따라서 비동기 서블릿과 함께 그 메커니즘을 사용하려고 시도하는 것은 그 당시 GWT RPC가 서브 레트에 구축 되었기 때문에 불가능했습니다. 2.5 (다시, 당시).

다른 팁

RPC를 이해하려면 Post에 대한 잊어 버리고 다르게 작동합니다 (프로그래밍 관점에서 나온 것입니다. 내부적으로 사용하지만 이국적인 일을하고 싶지 않다면 그것을 보거나 이해할 필요가 없습니다). 좋은 출발점은 RPC에 있습니다. GWT 문서입니다. http://code.google.com/webtoolkit/tutorials/1.6/rpc.html

요약을 제공합니다. RPC를 사용할 때 서틀 myServiceImpl 이름이 지정된 인터페이스의 메소드를 구현해야합니다 myService, 확장하는 것 외에도 RemoveServiceServlet. 방법은 서버로 보내려는 데이터를 인수로 얻습니다.

옆에 myService 인터페이스를 만들어야합니다 myServiceAsync 인터페이스 (두 인터페이스 모두 클라이언트 하위 포장지에 있어야 함). 이것 myServiceAsync Inteface는 다음과 동일한 방법을 포함해야합니다 myService 각 메소드를 제외한 인터페이스 void 추가적인 마지막 주장이 있습니다 AsyncCallback callback.

클라이언트에서는 GWT.Create를 통해 RPC를 생성하려면 GWT를 계기해야합니다 (세부 사항은 문서를 참조하십시오.

RPC를 사용하려면 메소드를 호출하십시오 myServiceAsync 클라이언트 코드의 인터페이스 및 GWT는 서블릿으로 보내는 것을 관리합니다. 그런 다음 서블릿은 고객에게 전달한 인수와 일치하는 메소드를 호출합니다. 이것은 비동기식입니다. 따라서 클라이언트는 통화에서 직접 돌아옵니다.

서버가 결과를 다시 전송하면 통과 한 콜백 myServiceAsync 사용됩니다 OnError 또는 OnSuccess 호출됩니다. OnError 서버 측의 메소드가 오류를 던지면 OnSuccess. 그만큼 OnSuccess 서틀이 구현 한 방법에서 반환 한 내용에서 반환 값을 인수 할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top