我建議不使用GWT-RPC機制服務器和什麼不GWT之間進行通信。原因是,GWT-RPC屏蔽了溝通的細節。它的內部可能會隨着你使用的GWT版本而改變。
您應該使用什麼取決於服務器應用程序和您的客戶端的體系結構。
你可以嘗試的是用其他servlet封裝GWT servlet,以通用格式(例如XML或JSON)提供數據。這樣,你獨立於GWT-RPC內部,你不必修改現有的代碼(包裝器servlet可以放在另一個只引用現有GWT-RPC服務器項目的項目中)。
下面是一個例子:
一個GWT-RPC的Servlet:
public class MyGwtServiceImpl extends RemoteServiceServlet implements MyGwtService {
// Method delivering my task list to GWT client
@Override
public List<Task> getTaskList(final String clientId) {
// Get task list ...
return result;
}
}
}
現在你可以換這個servlet返回JSON或XML:
public class MyJsonServlet extends MyGwtServiceImpl {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) {
List<Task> result = super.getTaskList(req.getParameter("clientId"));
// Serialize result to JSON and write to OutputStream
}
}
來源
2015-08-26 08:16:08
Bob
如果我得到這個權利,然後我只需編寫一些GWT Servlet,可以在一般情況下訪問服務器上的數據,並將我需要的servlet包裝到一個'Facade'中,該Facade提供了我的Android客戶端需要的功能**另外還有** ty,這是否正確?這聽起來很有趣,因爲目前我爲移動客戶端提供第二個REST API,而不是重用GWT servlet的功能。 – displayname 2015-08-26 09:13:26
我上面寫了一個例子。是的,你也可以在包裝servlet中添加額外的功能。 – Bob 2015-08-26 09:27:22
好的!這很好知道!謝謝 :) – displayname 2015-08-26 21:51:01