java - 如何在 GAE 部署中包含外部类?

标签 java google-app-engine gwt jpa gwt-rpc

我正在使用 Eclipse 的 Google 插件,但遇到以下问题:

项目 (A) 包含一个基于 GWT 的 GUI,与运行在 GAE 上并使用 JPA 的服务器进行通信。 此外,还有一个项目 (B) 将旧数据迁移到新数据存储。 由于这两个项目都使用通用的数据模型,因此我将一组接口(interface)和枚举提取到一个单独的项目 (C) 中,并设置其他两个项目对其的依赖关系。

Java 应用程序项目 (B) 似乎可以工作,但 GWT/GAE 项目 (A) 仅当我手动将类复制到 WEB-INF/classes 目录中时才可以工作。显然这仅在使用托管模式时才有效。

有人知道如何在 Eclipse 中配置这样的多项目设置吗?

此外,我不确定多项目布局是否是最佳解决方案。这组通用模型对象用于所有 3 个领域:

  • 用户客户端(GWT项目编译标准文件夹客户端并共享)
  • 服务器端(为 GWT-RPC 提供服务、上传和不同的 feed)
  • 迁移应用程序(将旧数据发布到上传 servlet)

有哪些架构选项可以将重复类的数量保持在最低限度?

最佳答案

为了使您的 GAE 项目能够使用另一个 java 项目,首先您必须将第二个项目添加到第一个项目的构建路径中。这仅解决了问题的一部分,允许您在开发中引用您需要的类。

另一个问题是,一旦您在开发模式下启动 GAE 项目,它将无法找到其他项目的类。你需要做的就是将项目导出为jar(名称无关紧要,类可以编译也可以不编译),并将ir放入WEB-INF/lib文件夹中。您不需要将 jar 添加到构建路径,您可以继续使用项目引用,但请记住,每次在其他项目中进行更改时,您都需要导出它并用新的 jar 替换该 jar。我还没有找到更好的方法来做到这一点,但至少如果您使用此文件夹而不是 WEB-INF/classes,它不会被 GAE 删除。

至于架构选项,我会将客户端和服务器放在一个项目中,这样可以简化开发。然后您可以从迁移应用程序引用该项目。我认为这样您可以更轻松地维护您的主要项目,而不会过多影响其他项目(我认为迁移项目的生命周期会短得多,因此从长远来看,它并不像另一个项目那么重要)。

关于java - 如何在 GAE 部署中包含外部类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2770266/

相关文章:

java - 在 WebClient 中处理异常抛出 io.netty.handler.timeout.ReadTimeoutException

java - Java 程序如何检测到 MacOS 机器正在关闭?

java - map 信息窗口中的文本颜色没有改变

gwt - 使 gwt celltable 行被选中

java - xsd:soapUI 中包含异常:org.apache.xmlbeans.XmlException:org.apache.xmlbeans.XmlException:错误:null 后出现意外的文件结尾

java - do-while 循环没有按预期工作

python - 如何将数据从本地 appengine 数据存储区移动到远程数据存储区?

Python 函数告诉我当我只发送一个参数时我发送了两个参数

google-app-engine - Google App Engine 检索用户定义的键名

java - 文件上传小部件 gwt