2010-10-13 79 views
2

我有一个用GWT和GAE编写的应用程序,每个受支持的城市都有自己的应用程序。显然,这不是管理地图的最佳方式,因此我想将它们合并到一个应用程序中。目前我的应用程序在网址为sub1.myapp.com,sub2.myapp.com,sub3.myapp.com等,我希望它们在myapp.com/sub1myapp.com/sub2等等。所有支持的城市都共享通用代码,所以我将把所有代码放在一个模块中,并为每个独特的代码块有一个不同的模块。这是否正确?不同模块如何交互?将大型GWT应用程序拆分为几个模块

此外,我目前有sub1.myapp.com/listofsomesort的JSP,我想将它们移动到​​。有没有简单的方法来完成这个?

+0

你知道App Engine支持通配符子域名吗?没有必要更改您的网址结构。 – 2010-10-13 08:10:07

+0

我现在在使用通配符子域,但这不是问题。我想完全摆脱子域名,因为他们不会集中他们的页面权限,而且人们通常会链接到我的网站的不同城市(例如nyc.myapp.com和losangeles.myapp.com)。将网址结构更改为更适合搜索引擎优化的能力是我为重构我的应用的动机之一。 – 2010-10-13 16:51:41

回答

3

通过为每个旧应用程序创建一个带有EntryPoint的模块,在同一个应用程序中。每个模块都有一个“欢迎页面”,您可以将它放在不同的目录中。所有的共享代码可以进入另一个模块。共享代码可以被其他模块中的inherit设置使用。

我碰到的唯一情况是,当您部署到GAE时,所有模块都应该有一个入口点,也是库模块。我通过向他们添加一个虚拟的EntryPoint来解决这个问题,它什么都不做,但仍然在寻找更好的解决方案。在How to deploy GWT Project containing GWT modules without entry points with Eclipse GAE plugin?看到我的问题。

+0

我还没有机会开始,但这正是我需要的建议类型。谢谢。 – 2010-10-14 05:05:21

+0

我有几个特定的​​问题:您是否修改了web.xml?如果欢迎文件设置为MyApp.html,那么是否可以将该文件复制到目录/ nyc中并将其另存为index.html,如果我更改了nocache路径,则希望应用程序能够正常工作? – 2010-10-16 07:43:51

+0

我没有更改web.xml。我做了类似的项目只包含了war文件夹中的所有欢迎文件,其中一个是默认情况下加载的“欢迎页面”。其他页面可通过此处的链接访问。你可以从任何html文件加载GWT模块,所以我相信你必须能够在你的情况下解决它。另请参阅:http://code.google.com/intl/nl-NL/webtoolkit/doc/latest/DevGuideOrganizingProjects.html#DevGuideHostPage – 2010-10-16 08:44:51

0

这看起来像是Code Splitting的工作:)但是,它可能需要对代码结构进行一些更改 - 但取决于您的类的耦合程度。一个compile report应该告诉你,如果你的代码很好地分裂,或者如果不是,连接在哪里。

+0

当我有机会时,我会进一步研究这一点,但我认为它不适合我,因为我需要更改的大部分代码都在服务器端。我在寻找的是更好地理解如何转换我的代码,以便在sub1.myapp.com和sub2.myapp.com上访问的两个完全不同的应用程序中的前两个入口点现在可以通过单个条目进行访问指向myapp.com/sub1和myapp.com/sub2上的同一应用程序。对于sub1和sub2,RPC几乎相同。唯一的区别是来自不同城市的查询数据。 – 2010-10-13 17:08:36