I have created a project using maven with the following "layout" - proj-ear - module1-war - module2-war
Running this with "mvn appengine:devserver" works just fine, both apps/modules starts and shows up in admin console. However, I am not able to run it with "mvn gcloud:run" (which I believe is necessary if/when I want to move a module to a managed vm?)
I get: ...
[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
...
Using mvn:run ends up in calling the actual "gcloud preview app run" command, so I dont think this is a maven problem.
Why is this happening and any ideas how to resolve?
This is a common family of error when running servers on a computer. The error is coming from the
wsgi_server
code, which is attempting to open a socket on port8081
, I assume formodule2
. It fails, probably due to the port already being claimed by another process.You can check which processes are listening on these ports using commands
netstat
for windows orlsof -i
for linux/mac. Terminating any processes that are using ports your devserver will request (probably just a previous run of devserver) should allow the new devserver to bind on that port.