-1

App engine standard environment我在using中托管了一个移动后端(用 Java 编写)Cloud endpoint framework 2.0,我可以通过这个 URL https://api-dot-[projectId]-appspot.com/_ah/api/myApi/v1/path 访问它

现在我正在尝试使用自定义域 [api.mydomain.app] 以及我所做的:

1-我已经api.mydomain.app在我的 appengine 设置中添加了这个域,它现在已经过验证,并且有一个由谷歌管理的有效 SSL

2-我在godaddy的这个域“mydomain.app”中添加了8条DNS记录(A和AAAA),如下所示:

A   api xxxxxxx
A   api xxxxxxx
A   api xxxxxxx
A   api xxxxxxx

AAAA    api xxxxxxx
AAAA    api xxxxxxx
AAAA    api xxxxxxx
AAAA    api xxxxxxx

我对@(对于默认服务)和admin(对于管理服务)有相同的记录,并且两者都工作得很好我也有这个记录CNAME * ghs.googlehosted.com

3- 我在 dispatch.xml 下面添加了这些记录:

  <dispatch>
       <!-- Send all Mobile traffic to the API. -->
      <url>api.mydomain.app/*</url>     
      <module>api</module>
  </dispatch>   

 <dispatch>
      <!-- Send all Admin traffic to the Admin Platform. -->
      <url>admin.harmonica.app/*</url>
      <module>admin</module>
  </dispatch> 

4- 此后端的模块名称定义appengine-web.xmlapi

5-这是我的 API 类的定义

@Api(name = "myApi", version = "v1", authenticators = { Authenticator.class },
        // scopes = { Constants.EMAIL_SCOPE },
        clientIds = { Constants.WEB_CLIENT_ID,
                Constants.ANDROID_CLIENT_ID }, description = "API for Harmonica Backend application.")
public class MyApi {...}

6-这就是我在 web.xml 中定义 EndpointsServlet 的方式

<servlet-mapping>
  <servlet-name>EndpointsServlet</servlet-name>
  <url-pattern>/_ah/api/*</url-pattern>
 </servlet-mapping>

所以在完成所有这些之后,每当我尝试访问https://api.mydomain.app/myApi/v1/pathhttps://api.mydomain.app/path 它向我显示此响应时:

Error: Not Found
The requested URL /dating was not found on this server.

在服务器日志中我看到了这个No handlers matched this URL.

那么你能帮帮我吗?我错过了什么吗?

提前致谢!

4

1 回答 1

0

我已将 EndpointsServlet 的 url 模式修改为:

   <servlet-mapping>
      <servlet-name>EndpointsServlet</servlet-name>
    <!--   This is for accessing the API by the domain name -->
      <url-pattern>/*</url-pattern>  
    <!--   This is for the backward compatibility -->
      <url-pattern>/_ah/api/*</url-pattern>
   </servlet-mapping>

现在我可以从我的自定义域访问我的 API。

于 2018-05-17T08:30:20.110 回答