我使用maven创建了一个带有以下“布局”的项目 - proj-ear - module1-war - module2-war
使用“mvn appengine:devserver”运行此工作正常,两个应用程序/模块都启动并显示在管理控制台中。 但是,我无法使用“mvn gcloud:run”运行它(如果/当我想将模块移动到托管虚拟机时,我认为这是必要的吗?)
我得到: ...
[INFO] INFO: Starting API server at: `http://localhost:50500`
[INFO] INFO: Starting module "module1" running at: `http://localhost:8080`
[INFO] INFO: Applying all pending transactions and saving the datastore
...
[INFO] google.appengine.tools.devappserver2.wsgi_server.BindError: Unable to bind localhost:8081
[ERROR] Error: gcloud app xxx exit code is: 1
...
使用mvn:run最终调用实际的“gcloud preview app run”命令,所以我不认为这是一个maven问题。
为什么会发生这种情况以及任何想法如何解决?
答案 0 :(得分:2)
在计算机上运行服务器时,这是一个常见的错误系列。该错误来自wsgi_server
代码,该代码尝试在端口8081
上打开套接字,我假设为module2
。它失败了,可能是因为另一个进程已经声明了端口。
您可以使用Windows的netstat
命令或linux / mac的lsof -i
来检查哪些进程正在侦听这些端口。终止使用您的devserver将请求的端口的任何进程(可能只是以前的devserver运行)应该允许新的devserver绑定在该端口上。