问题标签 [gae-module]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
756 浏览

java - 如何在不同模块中处理 App Engine Modules Java 中的常见类?

目前我正在研究Google App Engine Modules。我指的是文档

我对如何处理模型类或公共类感到困惑。以前我使用后端,因为所有代码都保存在项目中,但现在使用模块我不知道如何管理公共代码

0 投票
3 回答
738 浏览

python - 应用引擎在模块之间读取 DataStore 数据

我有一个应用程序分为 5 个模块(见我美丽的 ascii 艺术)每个都有自己的目录,就像这个结构

NDB 模型定义在一个模块中(例如 mod1),我想读取 Mod5 中的一些数据,官方文档说这是可能的,但我做不到。我正在以这种方式导入模型

我将 --storage_path 设置更改为每个模块,以便能够在启动器中同时运行所有模块,我认为这可能是问题所在。但是,如果我离开同一个目录,如何同时运行所有模块(我收到“OperationalError:数据库已锁定”错误)这里有什么线索吗?

0 投票
1 回答
305 浏览

java - Appengine 模块:如何将 error_handlers 路由到非默认模块?

我指的是为 Google Appengine 设置自定义错误响应,如使用 app.yaml 进行配置的文档中所述,特别是以下代码:

目前,我通过将代码放在单独的模块中运行应用程序,其中 python 作为 app.yaml 中配置的默认模块运行。其他模块的运行时在 php 和 java 中,它们通过dispatch.yaml同时运行,如下所示:

一切似乎都按预期工作,但我需要知道我在这里缺少什么,因为我已将上述 error_handlers 放在 app.yaml 中,但未能在未找到页面上显示 default_error.html(错误代码:404)或 over_quota。 html 超过配额(错误代码:503)。

我也将它们放在其他模块中,也没有任何响应。我还确保错误响应文件的路径不与静态文件处理程序路径重叠,并且两个 html 文件都小于 10 KB。

0 投票
1 回答
485 浏览

python - Google App Engine Python - 在不同模块中使用相同的基本处理程序

我正在转换 python App Engine 应用程序以使用本文中所述的模块,https://cloud.google.com/appengine/docs/python/modules/。我想在我的每个模块中使用自定义处理程序作为基类来添加一些通用功能。我需要在每个模块中重复我的自定义处理程序代码,还是有办法导入该类?

例如,我希望我的架构看起来像这样:

/common/my_handler.py 不是应用引擎模块的一部分,如下所示:

然后在 /module1/main.py 文件中,我想做这样的事情:

这不起作用,服务器会抛出一个错误,因为它找不到 common.my_handler.py:

这些模块似乎是沙盒的。是否可以从 /module1/main.py 中导入 /common/my_handler.py?

0 投票
0 回答
29 浏览

google-app-engine - 如何跨 GAE 模块与 SessionScoped 共享 ManagedBean

我正在使用带有模块的 GAE(版本 1.9.14)(https://cloud.google.com/appengine/docs/java/modules/

我相信每个模块都会有自己的会话。任何人都知道如何跨 GAE 模块(即跨域)与 SessionScoped 共享 ManagedBean

即从moduleA 认证的用户并且设置了userSession 对象。

当用户切换到 moduleB 时,moduleB 应该能够检索到 moduleA 设置的 userSession 对象。

p/s:我注意到当从一个模块浏览到另一个模块时,设置了相同的 cooie,但 JESSIONID 不同。

有什么帮助吗?

0 投票
2 回答
1067 浏览

google-app-engine - 如何在 AppEngine + Java 中为特定 URL 设置目标模块

在后端基础应用程序引擎项目(Java)中,我正在做

但是现在对于模块我如何才能针对我的特定 URL 定位特定模块。

请帮我。

0 投票
1 回答
40 浏览

google-app-engine - 将后端转换为模块时无法启动事务

我正在尝试将Google Web 应用程序转换为EAR 应用程序(后端转换为模块)。我已经为模块创建了 EAR 项目和动态 Web 项目。我已将旧的前端代码添加到默认模块并将后端代码添加到其他模块。在向数据存储添加数据时面临问题。使用前端后端的旧项目正常工作,将后端转换为模块时出现问题 tx.begin() throws Exception。我package.jdo为 jdo 配置创建了。

软件配置:- Eclipse-Juno,Google App Engine SDK:- 1.8.5,JDK:- 1.7.0_65,JDO:-JDO 2.3,DataNucleus Eclipse 插件:-4.0.0。

0 投票
3 回答
1477 浏览

eclipse - 在 Eclipse 中使用模块创建 Google App Engine 项目

按照 cloud.google.com 上的建议,我一直在使用带有 Maven 的 Eclipse 编写 GAE 应用程序。最近,我需要使用“后端”或一组不同的实例来处理某个任务。我发现“后端”已被弃用,取而代之的是“模块”。在过去的几天里,我一直在尝试设置项目以使用模块,但进展甚微。

我想要做的就是将不同的 URL 分派到不同的实例集(使用模块和 dispatch.xml)。有谁知道我如何转换我现有的 Eclipse 项目来做到这一点?我什至愿意做一个新项目。

我需要我的模块:1) 使用我原始应用程序中的共享源代码/类 2) 拥有不同数量的常驻实例 3) 遵守 dispatch.xml 中的规则

我希望我的项目在 eclipse 中运行并使用 gradle 或 maven。

0 投票
2 回答
11322 浏览

google-app-engine - 为什么我得到了超过配额错误?谷歌应用引擎

我在谷歌应用引擎中有一个项目,我有后端模块,我用它来运行长后端进程。这是 backend-module.yaml 文件中的配置:

但是当我运行长时间运行的过程时,我会出现这个错误:This application is temporarily over its serving quota. Please try again later.

编辑:我想调整保存在我的云存储中的许多图像的大小。

当我将 http 请求发送到指定的 url 时代码运行。

所以我使用了一个模块(基本缩放)来运行这个漫长的过程......

我的应用程序中启用了计费,所以我想我可以随心所欲地运行后端。正确的 ?

顺便说一句:我的应用程序没有崩溃,自动模块仍然运行良好!

0 投票
3 回答
1050 浏览

java - 如何在 Google App Engine Java 应用程序上的模块之间共享会话?

HttpSession当我通过模块A在会话中存储一些东西时:

然后我尝试从模块 B 中检索此信息(在同一浏览器会话期间):

我得到了null一个值,这意味着不同的会话。

如何在 GAE 中跨多个模块共享会话?


我认为效果不佳的旧答案:

我已经尝试解决这个问题好几个星期了。事实证明,这些模块不共享会话,因为不同子域的 cookie 不同(module1.apphost.com cookie!= module2.apphost.com cookie)。要解决这个问题,只需在web.xml每个模块中设置 cookie 域:


额外的:

以下是您可以与 Jetty cookie 一起使用的所有初始化参数的列表:

在此处输入图像描述


编辑:开发环境的解决方法:

  1. 固定每个模块的端口(使用 JVM arg -Dcom.google.appengine.devappserver_module.{module_name}.port=8081)。例如,module1 始终托管在 localhost:8888,而 module2 始终托管在 localhost:8889。看到这个答案
  2. 使用 Fiddler 将 localhost 与每个模块的端口绑定到自定义域。例如,moule1.gaelocal.com 指向 localhost:8888,moule2.gaelocal.com 指向 localhost:8889。看到这个答案
  3. 更新web.xml每个模块并替换.apphost.com.gaelocal.com(或仅.apphost.com用于两种环境)。