Grails项目运行错误-Server无法启动端口8080:已在使用的地址:JVM_Bind

时间:2014-07-13 17:03:09

标签: grails

错误| 服务器无法启动端口8080:已在使用的地址:JVM_Bind(使用--stacktrace查看完整跟踪)

当我第二次使用grails项目时 --- 2 Grails Command(run-app)每次都会遇到这种类型的错误。

但是当我使用任务管理器杀死javaw.exe时,如果我再次运行它对我有效。这有什么永久的解决方案吗?..请建议。

  

|包装Grails应用程序..

     

|编译10个源文件..

     

|编译121个源文件.......

     

|编译9个源文件.........................

     

|运行Grails应用程序

     

错误|服务器无法启动端口8080:地址已在使用中:   JVM_Bind(使用--stacktrace查看完整跟踪)

4 个答案:

答案 0 :(得分:5)

您可以使用cli指定HTTP端口来运行服务器:

示例:

grails -Dserver.port=8090 run-app

documentation

中的更多详细信息

答案 1 :(得分:3)

当您第一次运行应用程序时,它将继续运行,直到您明确告诉它停止。无论您如何启动应用程序(无论是来自GGTS还是命令提示符),在您发送命令stop-app之前,它都将继续。你得到了你遇到的错误:

Error | Server failed to start for port 8080: Address already in use: JVM_Bind (Use --stacktrace to see the full trace)

该服务器仍在运行时。 Grails会在您进行更改时编译您的更改,并且您可以立即在网页上看到结果(对于大多数更改,对域对象进行更改可能会有问题,并且通常需要重新启动服务器)。

我个人更喜欢在GGTS中编辑项目,但是使用控制台管理应用程序只是因为我更喜欢控制台的错误输出而不是GGTS。

答案 2 :(得分:1)

使用最新版本的Grails(从2.3.0开始),默认设置是以分叉模式运行服务器。您可以在BuildConfig.groovy中找到此配置:

grails.project.fork = [ ... ]

在为run-app启用上述分叉模式后,必须在重新运行之前显式停止app。因此,必须在grails stop-app之前发出grails run-app

如果您不想在分叉模式下运行应用,请将此行替换为run:false

run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false]

有了这个,就不需要显式运行stop-app命令。

答案 3 :(得分:0)

打开BuildConfig.groovy

解决方案1: 然后用run:false替换这一行 运行:[maxMemory:768,minMemory:64, debug:false ,maxPerm:256,forkReserve:false],

解决方案2: 评论上一行