从一个开发服务器提供多个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,但你可以考虑尝试一下吗?