我最近开始使用超级开发模式,并使用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。
这是一个已知错误还是我做得不对?
答案 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上的工作原理。