我有一個模塊B,它繼承模塊A.當我打電話RPC服務從A內部的內部RPC服務,他們的工作正常。但是,當我從B中的A調用服務時,RPC調用總是失敗。我錯過了什麼嗎?GWT:調用另一個模塊
在此先感謝您的幫助。
我有一個模塊B,它繼承模塊A.當我打電話RPC服務從A內部的內部RPC服務,他們的工作正常。但是,當我從B中的A調用服務時,RPC調用總是失敗。我錯過了什麼嗎?GWT:調用另一個模塊
在此先感謝您的幫助。
我發現我的問題在這裏的答案:http://blog.cloudglow.com/2010/03/making-gwt-rpc-endpoint-independent-of.html
默認GWT RPC服務(Servlet的)端點@RemoteServiceRelativePath( 「some_name」),它解析爲/ module_base/some_name在運行在客戶端上。這種方法的問題是您的RPC端點現在綁定到GWT模塊。雖然這在某些情況下可能沒有問題,但這不符合我們的情況。因此這篇文章。
我們最終創建了一個RPC服務工廠類,該類將創建服務端點的靜態實例併爲其添加正確的端點;像這樣:
public class ServicesFactory
{
public static final RPCServiceAsync RPCService = GWT.create(RPCService.class);
static
{
((ServiceDefTarget) RPCService).setServiceEntryPoint(GWT.getHostPageBaseURL() + RPCService.END_POINT);
}
}
還有另一種解決方法。 只需爲每個新方法添加一個新的servlet映射。
<servlet-mapping>
<servlet-name>serverName</servlet-name>
<url-pattern>/Module1</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>serverName</servlet-name>
<url-pattern>/Module2</url-pattern>
</servlet-mapping>