gwt程序中的例外情况

时间:2010-07-27 11:07:04

标签: java gwt

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

4 个答案:

答案 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团队就此案件提出了一个错误。