gwt程序中的例外
java.lang.ExceptionInInitializerError
[ERROR] Unable to bind socket on port 9997 -- is another session active?
java.net.BindException: Address already in use
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:365)
at java.net.ServerSocket.bind(ServerSocket.java:319)
at java.net.ServerSocket.bind(ServerSocket.java:277)
at com.google.gwt.dev.shell.BrowserListener.<init>(BrowserListener.java:67)
at com.google.gwt.dev.DevModeBase.ensureCodeServerListener(DevModeBase.java:898)
at com.google.gwt.dev.DevModeBase.doStartup(DevModeBase.java:888)
at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1030)
at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:783)
at com.google.gwt.dev.DevMode.main(DevMode.java:275)
log4j:WARN No appenders could be found for logger (org.apache.jasper.compiler.JspRuntimeContext).
log4j:WARN Please initialize the log4j system properly.
Starting Jetty on port 8888
[WARN] failed SelectChannelConnector@127.0.0.1:8888
java.net.BindException: Address already in use
at sun.nio.ch.Net.bind(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:119)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59)
at org.mortbay.jetty.nio.SelectChannelConnector.open(SelectChannelConnector.java:205)
at org.mortbay.jetty.nio.SelectChannelConnector.doStart(SelectChannelConnector.java:304)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.Server.doStart(Server.java:233)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:543)
at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:421)
at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1035)
at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:783)
at com.google.gwt.dev.DevMode.main(DevMode.java:275)
[WARN] failed Server@69d02b
java.net.BindException: Address already in use
at sun.nio.ch.Net.bind(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:119)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59)
at org.mortbay.jetty.nio.SelectChannelConnector.open(SelectChannelConnector.java:205)
at org.mortbay.jetty.nio.SelectChannelConnector.doStart(SelectChannelConnector.java:304)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at org.mortbay.jetty.Server.doStart(Server.java:233)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)
at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:543)
at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:421)
at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1035)
at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:783)
at com.google.gwt.dev.DevMode.main(DevMode.java:275)
Port 127.0.0.1:8888 is already is use; you probably still have another session active
答案 0 :(得分:11)
答案 1 :(得分:3)
您有另一个会话处于活动状态,堆栈跟踪非常明显:
[错误]无法在端口9997上绑定套接字 - 是另一个活动的会话?
java.net.BindException:已在使用的地址:java.net.PlainSocketImpl.socketBind(Native Method)
端口127.0.0.1:8888已经使用; 你可能还有另一个会话活动
答案 2 :(得分:0)
您没有提供足够的信息,例如堆栈跟踪和代码。但是,我能说的是,当静态初始化代码抛出运行时异常时,会发生ExceptionInInitializerError。请注意,异常包装了触发运行时异常,因此请尝试查看完整的堆栈跟踪并对其进行分析。
以下是一个例子:
public class Test {
static {
String s = "hi";
s.substring(10);
}
public static void main(String[] args) {
}
}
堆栈跟踪打印输出为:
java.lang.ExceptionInInitializerError
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -8
at java.lang.String.substring(String.java:1938)
at java.lang.String.substring(String.java:1905)
at Test.<clinit>(Test.java:5)
Exception in thread "main"
<强> - 编辑 - 强>
现在您提供了更多详细信息,请查看更具体针对您的案例的其他响应:您已经运行了另一个GWT应用程序会话,或者您在localhost上有其他一些服务器应用程序,听8888端口。
答案 3 :(得分:0)
This主题可能会对您有所帮助。
引用该主题的最佳答案:
“即使退出所有浏览器连接,代码服务器仍在运行 等待新的联系。你需要停止以前的连接 在开始另一个之前启动。另外,请注意您不一定要这样做 重启它 - 只需进行更改并刷新浏览器或启动新的 浏览器“。
根据我的个人经验,尝试在1分钟左右后启动webapp。这个问题会消失。 不是干净的做事方式,所以GWT团队就此案件提出了一个错误。