为非默认模块选择本地开发服务器上的特定端口
Choosing specific ports on local development server for non-default modules
在我的 build.gradle 文件中,我将以下配置用于我的非默认(模块 2)AppEngine gradle 模块:
appengine {
downloadSdk = true
httpAddress = "0.0.0.0"
httpPort = 8081
appcfg {
email = "blahemail@domain.com"
oauth2 = true
}
}
但是,当我 运行 我的 "Google AppEngine configuration" 时,模块仍然在 some_random_port 而不是 8081 上启动。我想修复这些 运行 所在的端口,因此当我 运行 在我的本地开发服务器上测试请求时,我可以依赖这些端口。
我做错了什么?或者这只是不受支持?
=========================================== =========================
Appengine 模块结构:
- root( apply java, ear, appengine)
- default (apply java, war, appengine) - needs to run on 8080 on local dev server
- module2 (apply java, war, appengine) - needs to run on 8081 on local dev server
应用引擎版本:1.9.22
Gradle Appengine 插件版本:1.9.21
编辑:
我还尝试 运行 将每个模块连接到自己的 "Appengine run configuation" 中,当模块在各自的端口中 运行 时,我无法再在它们之间进行通信。尝试从默认模块上的 servlet 安排模块 2 上的任务会出现以下错误:
com.google.appengine.api.modules.ModulesException: Unknown module
at com.google.appengine.api.modules.ModulesServiceImpl$ModulesServiceFutureWrapper.convertApplicationException(ModulesServiceImpl.java:365)
at com.google.appengine.api.modules.ModulesServiceImpl$ModulesServiceFutureWrapper.convertException(ModulesServiceImpl.java:352)
at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:96)
at com.google.appengine.api.modules.ModulesServiceImpl.getAsyncResult(ModulesServiceImpl.java:104)
at com.google.appengine.api.modules.ModulesServiceImpl.getDefaultVersion(ModulesServiceImpl.java:163)
@crazystick 为 Maven 回答了这个问题。这是为 Gradle 重新完成的相同解决方案:
apply plugin: ear
...
appengine {
downloadSdk = true
httpAddress = "0.0.0.0"
jvmFlags = ['-Dcom.google.appengine.devappserver_module.default.port=8080',
'-Dcom.google.appengine.devappserver_module.module1.port=8081']
appcfg {
email = "blahemail@domain.com"
oauth2 = true
}
}
在我的 build.gradle 文件中,我将以下配置用于我的非默认(模块 2)AppEngine gradle 模块:
appengine {
downloadSdk = true
httpAddress = "0.0.0.0"
httpPort = 8081
appcfg {
email = "blahemail@domain.com"
oauth2 = true
}
}
但是,当我 运行 我的 "Google AppEngine configuration" 时,模块仍然在 some_random_port 而不是 8081 上启动。我想修复这些 运行 所在的端口,因此当我 运行 在我的本地开发服务器上测试请求时,我可以依赖这些端口。
我做错了什么?或者这只是不受支持?
=========================================== ========================= Appengine 模块结构:
- root( apply java, ear, appengine)
- default (apply java, war, appengine) - needs to run on 8080 on local dev server
- module2 (apply java, war, appengine) - needs to run on 8081 on local dev server
应用引擎版本:1.9.22
Gradle Appengine 插件版本:1.9.21
编辑:
我还尝试 运行 将每个模块连接到自己的 "Appengine run configuation" 中,当模块在各自的端口中 运行 时,我无法再在它们之间进行通信。尝试从默认模块上的 servlet 安排模块 2 上的任务会出现以下错误:
com.google.appengine.api.modules.ModulesException: Unknown module
at com.google.appengine.api.modules.ModulesServiceImpl$ModulesServiceFutureWrapper.convertApplicationException(ModulesServiceImpl.java:365)
at com.google.appengine.api.modules.ModulesServiceImpl$ModulesServiceFutureWrapper.convertException(ModulesServiceImpl.java:352)
at com.google.appengine.api.utils.FutureWrapper.get(FutureWrapper.java:96)
at com.google.appengine.api.modules.ModulesServiceImpl.getAsyncResult(ModulesServiceImpl.java:104)
at com.google.appengine.api.modules.ModulesServiceImpl.getDefaultVersion(ModulesServiceImpl.java:163)
@crazystick 为 Maven 回答了这个问题。这是为 Gradle 重新完成的相同解决方案:
apply plugin: ear
...
appengine {
downloadSdk = true
httpAddress = "0.0.0.0"
jvmFlags = ['-Dcom.google.appengine.devappserver_module.default.port=8080',
'-Dcom.google.appengine.devappserver_module.module1.port=8081']
appcfg {
email = "blahemail@domain.com"
oauth2 = true
}
}