我有 3 个使用 Google Appengine Standard 的 java 模块:
第一个模块使用 Java 7 和 Servlet 2.5 + web.xml + Spring 4
第二个模块使用 Java 8 和没有 web.xml 的 Servlet 3.1 + 使用 WebApplicationInitializer 的 Spring 5。
第三个模块只是前端文件(HTML,CSS)。
我有一个 dispatch.yaml 包含每个模块的路由。
如果我只运行 java8 模块使用:
mvn appengine:run OR /usr/lib/google-cloud-sdk/bin/java_dev_appserver.sh,
没关系,模块运行。
如果我使用: dev_appserver.py theJava8Module
,会出现以下问题:
google.appengine.tools.devappserver2.errors.AppConfigNotFoundError: The "target/theJava8Module/WEB-INF" subdirectory exists but is missing web.xml
在我拥有这个 java8 模块之前,我曾经使用这个命令运行:
dev_appserver.py --max_module_instances=1 frontendmodule/frontendmodule.yaml dispatch/dispatch.yaml java7Module/target/java7Module --dev_appserver_log_level=debug
当我使用这个命令时,没关系,两个模块运行,我可以使用应用程序和调度规则。
我的问题是,有没有办法运行多个模块并使用调度规则?我可以使用 dev_appserver.py (python) 来运行没有 web.xml 的 java8 应用程序吗?或者我可以使用 mvn:appengine 来运行多个模块并使用 dispatch.xml 或 dispatch.yaml 吗?
重要提示:我可以使用 mvn:appengine 和 dev_appserver 运行单独的模块吗,问题是端口会不同,所以调度规则不起作用。
例子:
dev_appserver.py --max_module_instances=1 frontendmodule/frontendmodule.yaml dispatch/dispatch.yaml java7Module/target/java7Module --dev_appserver_log_level=debug (port 8080)
mvn appengine:run java8module (port 9090)