Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取已部署应用程序引擎项目的URL_Java_Maven_Google App Engine - Fatal编程技术网

Java 如何获取已部署应用程序引擎项目的URL

Java 如何获取已部署应用程序引擎项目的URL,java,maven,google-app-engine,Java,Maven,Google App Engine,我已使用maven()在应用程序引擎中部署了我的应用程序 如何以编程方式获取应用程序的URL? 我知道它遵循这种格式。但是,我不知道区域Id。如果无法获取URL,是否有方法获取区域Id 编辑 我发现这对这一目的很有用: 此命令将获取已部署应用程序引擎的URL: gcloud app browse 我在我的生产环境中使用此代码来标识URL。目前无法使用代码动态获取REGIONID。至少在我当前的SDK中,它不可用。总有一天他们会这么做的 目前,根据谷歌文档,REGIONID.r在URL中不是强制

我已使用maven()在应用程序引擎中部署了我的应用程序

如何以编程方式获取应用程序的URL? 我知道它遵循这种格式。但是,我不知道区域Id。如果无法获取URL,是否有方法获取区域Id

编辑

我发现这对这一目的很有用:

此命令将获取已部署应用程序引擎的URL:

gcloud app browse

我在我的生产环境中使用此代码来标识URL。目前无法使用代码动态获取REGIONID。至少在我当前的SDK中,它不可用。总有一天他们会这么做的

目前,根据谷歌文档,REGIONID.r在URL中不是强制性的。在未来的项目中可能需要它。此代码将适用于您。


您可以从Google云控制台获取区域ID。它是固定的,所以不需要编程。谢谢你的回答。是的,我知道它是固定的,但在我的情况下,我没有访问它。有没有一种方法可以通过编程实现这一点?我知道gcloud app descripe命令可以显示这一点,但我希望有一种比从命令中检索stdout更好的方法,看起来你们都准备好了。当你自己解决问题时,回答自己的问题是一种很好的做法。@gaefan不完全是吗?她正在询问regionID,以及如何通过编程获取它,
gcloud app description
apps.get
给你一个位置ID而不是regionID。尽管如此,你说这是一个很好的实践并没有错。编辑:等等,不,我是个白痴,你是对的。它们是一样的,我考虑的是区域,而不是区域(无法编辑原始内容,因为我太慢了,没有注意到,有5分钟的限制)请添加一个解释以提高洞察力,并为OP提供更多信息
import com.google.appengine.api.modules.ModulesServiceFactory;
import com.google.appengine.api.utils.SystemProperty;
import com.google.apphosting.api.ApiProxy;

public static void main(String[] args) {

    String projectId = ApiProxy.getCurrentEnvironment().getAppId().indexOf("~")>-1?
                ApiProxy.getCurrentEnvironment().getAppId().split("~")[1]:ApiProxy.getCurrentEnvironment().getAppId();
    ModulesService ssf = ModulesServiceFactory.getModulesService();
    String url = null;
    if(SystemProperty.environment.value()!=SystemProperty.Environment.Value.Production) {
        url = "http://localhost:PORT_NUMBER";
    }
    if(ssf.getDefaultVersion(ssf.getCurrentModule()).equals(ssf.getCurrentVersion())) {
        //This is default version
        url = "https://" + projectId + ".appspot.com";
    }
    //The URL with the current version ID  
    url = "https://" + ssf.getCurrentVersion() + "-dot-" + projectId + ".appspot.com";
    //The URL with the module name, current version name
    url = "https://" + ssf.getCurrentVersion() + "-dot-" + ssf.getCurrentModule() + "-dot-" + projectId + ".appspot.com";

}