java - 应用引擎 : Having a web module and a endpoint module

标签 java google-app-engine

我想要一个网络和一个端点模块。

我在我的开发环境中主要在 https://github.com/GoogleCloudPlatform/appengine-modules-sample-java 之后工作.

但是,当托管在 App Engine 中时,我无法正常工作。如果我将 Web 模块设置为默认模块,则无法通过 dispatch.xml 路由到端点模块。这是因为端点(显然)需要位于/_ah/api 并且不可能将其路由到默认模块之外。

另一种选择是将端点模块作为默认模块,但是我不知道如何将除/_ah/api/之外的所有内容路由到 web 模块。看来您无法将/* 路由到默认模块之外。

编辑:注意我想让两个模块都在同一个自定义域中运行。

EDIT2:请注意这是单页应用程序。前端模块纯html、css、js,想和同域端点模块对话。

有什么办法可以解决吗?

最佳答案

如果问题仅出在路由上,您绝对可以让您的默认模块带有端点,并为您的前端提供一个模块“网站”

那么你的调度文件应该是这样的(python 版本,Java 版本应该非常相似):

dispatch: 
- url: "*/_ah/*"
  module: default
- url: "*/*"
  module: website

调度文件显然将路由设置为从上到下的优先级,因此每个针对端点 */_ah/* 的请求都将被路由到默认模块,其余的将转到网站模块。

但是,如果您有 CORS 问题,您可以检查 handler configuration for static files或者直接在您的页面处理程序代码中包含适当的 header 。

关于java - 应用引擎 : Having a web module and a endpoint module,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29227900/

相关文章:

google-app-engine - AppEngine 开发服务器在 JSP 中给出 StackOverflowError

带分区的 Java Batch Step 返回错误的 batchStatus 和 exitStatus

java - Java代码的智能搜索和生成,最好用Python?

java - 输入不等于字符串

Java内部消息队列/JMS

java - 迭代添加 ArrayDeque 中的所有元素

python - 无法使用 nosegae 导入 django 包

google-app-engine - 日期时间字段的 ndb 查询错误 - Google App Engine

google-app-engine - 检索具有共同祖先的不同种类的实体

java - 安全事项 : are parameters in url secure?