Maven GWT插件错误:“地址已在使用中:绑定”

时间:2014-07-21 13:28:09

标签: java eclipse maven gwt gwt-super-dev-mode

我最近开始使用超级开发模式,并使用maven gwt plugin启动服务器和代码服务器。

首先我做“mvn:gwt-run”来启动常规开发模式服务器,然后运行“mvn:run-codeserver”来运行代码服务器。当我转到localhost:8888并按下“Dev Mode On”书签时,它工作正常。我遇到的问题是当我终止两次启动然后再次启动它们时。

第二次运行代码服务器时出现此错误:

[ERROR] 2014-07-21 14:12:12.176:INFO:oejs.Server:jetty-8.y.z-SNAPSHOT
[ERROR] 2014-07-21 14:12:12.198:WARN:oejuc.AbstractLifeCycle:FAILED SelectChannelConnector@127.0.0.1:9876: java.net.BindException: Address already in use: bind
[ERROR] java.net.BindException: Address already in use: bind
[ERROR]     at sun.nio.ch.Net.bind0(Native Method)
[ERROR]     at sun.nio.ch.Net.bind(Net.java:444)
[ERROR]     at sun.nio.ch.Net.bind(Net.java:436)
[ERROR]     at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214)
[ERROR]     at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
[ERROR]     at org.eclipse.jetty.server.nio.SelectChannelConnector.open(SelectChannelConnector.java:187)
[INFO] [ERROR] [ERROR] cannot start web server

解决问题的唯一方法是退出eclipse,终止仍在运行的java.exe进程(并使用~2gb的内存),然后再次启动eclipse。

这是一个已知错误还是我做得不对?

1 个答案:

答案 0 :(得分:0)

只需添加我提出的答案,取自this question

我打开cmd.exe并粘贴:

FOR /F "tokens=5 delims= " %P IN ('netstat -a -n -o ^| findstr :9876') DO @ECHO TaskKill.exe /PID %P /T /F

这通常会回显端口9876上被代码服务器阻止的单个端口。然后我取出@ECHO并运行它以实际杀死它:

FOR /F "tokens=5 delims= " %P IN ('netstat -a -n -o ^| findstr :9876') DO TaskKill.exe /PID %P /T /F

更多信息解释其在original answer上的工作原理。