Я не эксперт по Grails, но Tomcat и Glassfish - это один процесс / приложение, привязанное к одному порту.Затем они размещают различные приложения (web / enterprise), работающие на одной и той же виртуальной машине, и направляют запросы, например, с помощью корневого контекста.
Я подозреваю, что grails run-app
запускает новое приложение как новый процесс / в новомЭкземпляр JVM и пытается привязать его к порту.Если привязка уже есть, это не сработает.