从一个开发服务器提供多个GAE模块?

我正在将一些后端转换为模块,并且在设置开发环境配置时感到困惑。 我在Eclipse中使用Java而不是Maven。 架构非常简单:

  • 前端模块是默认的。 基本的GAE / GWT应用程序。 将项目放在任务队列上。
  • 后端模块处理任务队列。

使用旧的后端架构,一个调试配置将启动开发服务器,该服务器将为GWT DevMode UI 后端任务处理提供服务。

问题的关键在于DevMode的参数提供了一个-war命令行参数。 现在我们不再有一个war文件(有一个包含两个war文件的ear),我们必须独立启动它们。 这很好,我们可以创建一个启动前端和后端的启动组。

问题是每个war文件都有自己的WEB-INF / appengine-generated / local_db.bin,它实际上创建了两个独立的应用程序。 我在这里错过了什么吗? 我需要能够在我的前端RPC服务处理新后端中的任务队列项的servlet中放置一个断点,并让它们在一个调试会话中命中。

谢谢你的任何想法。

如果按照此处的说明操作,这将在Eclipse中创建模块化的应用程序结构,而根本不使用Maven。 您需要Eclipse WTP才能获得所需的项目类型(Enterprise Application Project和Dynamic Web Project)。

Eclipse项目结构应如下所示:

<> ear-app | | (refers to) | <> app-module-1 "default" <> app-module-2 "any_name_2" <> app-module-3 "any_name_3" <> app-module-4 "any_name_4" 

“name”的值是指appengine-web.xml中的“module”元素,而物理Web项目可以是任何名称。

请注意,您需要切换到J2EE透视图以使GPE WTP菜单选项可用,它们不会显示在标准Java透视图中。

接下来,您需要将EAR项目链接到新的本地服务器实例(类型为“Google App Engine”)。

在appengine-web.xml中,只有一个Web模块必须标记为“default”。

在将EAR部署到本地服务器时,数据存储位置位于默认 Web模块的WEB-INF / appengine-generated / local_db.bin中,并在Web模块之间共享。

我在解决如何在Google App Engine的MyEclipse插件中实现多个模块时遇到了类似的问题。 我发现的最好的信息只是说使用Maven。

“虽然Java EE支持WAR文件,但模块配置仅使用解压缩的WAR目录.App Engine的Java SDK包含一个Apache Maven工具,可以为您构建骨架EAR结构。” (来源: https : //developers.google.com/appengine/docs/java/modules/ )

我也发现了这个:

“Maven项目的布局与Eclipse项目不同。因此,如果您希望在Eclipse中使用Maven项目,则需要做更多的工作。您有以下选择:

1]将App Engine的Maven项目作为Web工具平台(WTP)项目导入Eclipse,如导入现有Maven项目中所述。

2]使用适当的Maven集成插件(如m2eclipse)将Maven项目导入Eclipse。

3]设置两个调试配置,一个用于devserver中的Maven项目(mvn appengine:devserver),另一个用于远程Java应用程序,用于将Eclipse调试客户端连接到devserver jvm。 有关如何执行此操作的详细信息,请参阅…“(来源: https : //developers.google.com/appengine/docs/java/tools/maven#creating_a_new_maven_app_engine_project_using_skeleton-archetype )

我知道你说你没有使用Maven,但你可以考虑尝试一下吗?