2014-04-12 5 views
3

내가 GWT 서비스를 다음했다고 가정 해 :GWT-RPC 호출을 다른 서버로 보낼 수 있습니까?

@RemoteServiceRelativePath("greet") 
public interface GreetingService extends RemoteService { 
    String greetServer(String name) throws IllegalArgumentException; 
} 

나는 myserver1.com에 & 배포 클라이언트 코드를 구축,하지만 내 서블릿은 서버 2에 대한 도메인 간 자원 공유 할 수 myserver2.com (예 : http://myserver2.com/gwt-module-base/greet.) & 서버 1에 있습니다.
다음은 질문입니다. 대신 myserver2.com 번 인사 서비스에 대한 gwt-rpc 통화를 보내려면 어떻게해야합니까?

답변

2

필요한 것은 myserver2.com에서 CORS을 사용하도록 설정하는 것입니다. 나는 gwtquery 문서를 위해 언젠가 전에 필터를 썼다. RPC와 RF에서도 작동합니다.

https://code.google.com/p/gwtquery/wiki/Ajax#CORS_(Cross_Origin_Resource_Sharing)

[EDITED]

당신은이 방법으로 서비스 전송을 구성해야

:

GreetingServiceAsync greetingService = GWT.create(GreetingService.class); 
((ServiceDefTarget)greetingService).setServiceEntryPoint("myserver2.com/greet"); 
greetingService.greetServer(....) 
+2

내가 내가 요청을 보낼 GWT를 알 수있는 방법을 의미한다, 당신이 내 질문을 오해 생각 server1 대신 server2로 변경하십시오. 어쨌든 해결책을 찾았습니다! 그것은 프록시 객체를 만들 때 할 수 있습니다 : 'GreetingServiceAsync proxy = GWT.create (GreetingService.class); –

+0

setServiceEntryPoint 인수에서 서버 URL 접두어로 GWT.getHostPageBaseURL()을 사용합니다 (예 : GWT). setServiceEntryPoint 인수에서 GWT.getHostPageBaseURL()을 서버 URL 접두어로 사용합니다. 예 : GWT .getHostPageBaseURL() + "gwt-module-base/greet". – Patrick

+0

지연으로 죄송합니다. 내 답변을 편집했습니다. –