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

Dom*_*cey 5 java eclipse google-app-engine google-eclipse-plugin

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

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

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

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

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

感谢您的任何想法。

Tho*_* W. 3

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

Eclipse 项目结构应如下所示:

<<Enterprise Application Project>> ear-app
    |
    | (refers to)
    |
<<Dynamic Web Project>> app-module-1  "default"
<<Dynamic Web Project>> app-module-2  "any_name_2"
<<Dynamic Web Project>> app-module-3  "any_name_3"
<<Dynamic Web Project>> app-module-4  "any_name_4"
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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