GWT:将客户端和服务器端分成不同的WAR

时间:2012-10-20 20:48:53

标签: java google-app-engine gwt

我计划构建一个将部署到GAE的GWT应用程序。除了普通(GWT)Web客户端之外,服务器端代码还将为除Web应用程序之外的其他客户端提供服务。具体来说,它将托管一个RESTful API,可以从任何符合HTTP的客户端点击,它还将处理来自iOS和Android上的本机应用程序的请求。

如果我对GWT的理解是正确的,那么您的工作就是编写客户端代码(包括您的应用程序返回服务器的AJAX请求)以及服务器 - 请求处理程序。

这让我想到:为什么我需要将Web客户端和Web服务器打包在同一个WAR中?这迫使我(基本上)每次我想要对后端进行更改时重新部署客户端代码。可能不是什么大不了的事,但如果我不需要,我宁愿尊重“分离关注点”。

所以我问:有没有办法在GAE上实质上部署无Java的WAR,它只是将纯HTML / JS / CSS提供给任何将使用它的客户端,然后部署服务器在它自己的WAR中,还有一些如何将两者联系起来?提前谢谢!

3 个答案:

答案 0 :(得分:1)

WAR仅适用于服务器端。它包括序列化客户端和服务器之间传递的对象所需的客户端类:显然,双方都需要实现相同的对象才能处理这些对象。

我认为它不会为您节省任何努力或开发时间来分离这两个问题,但如果您真的想要,那么您可以使用GWT-RPC以外的其他方式重新构建客户端/服务器交互。例如,JSON。如果您想走这条路,请参阅https://developers.google.com/web-toolkit/doc/latest/DevGuideServerCommunication#DevGuideHttpRequests以了解您的选择。

答案 1 :(得分:0)

不,AFAIK,您无法在GAE中进行部分更新,即您无法将项目的一部分上传到GAE实例,然后在单独的上传中上传其他部分(因此将HTNML / JS / CSS分离为java类)。

答案 2 :(得分:-1)

希望this正是您所寻找的。

最后,您要部署的主存根可能是EAR文件,您可以在主pom.xml中提及