代码之家  ›  专栏  ›  技术社区  ›  Sagar Varpe

gwt程序中的异常[关闭]

  •  -7
  • Sagar Varpe  · 技术社区  · 14 年前

    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 回复  |  直到 14 年前
        1
  •  0
  •   Eyal Schneider    14 年前

    您没有提供足够的信息,例如堆栈跟踪和代码。但是,我可以告诉您,当静态初始化代码抛出运行时异常时,会发生ExceptionInInitializeError错误。请注意,异常包装了触发运行时异常,因此请尝试查看完整的堆栈跟踪并对其进行分析。

    举个例子:

    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" 
    

    --编辑--

    既然您提供了更多的详细信息,请看另一个更具体的答复:

        2
  •  11
  •   Michael    13 年前
        3
  •  3
  •   Robert Munteanu    14 年前

    如果另一个会话处于活动状态,堆栈跟踪非常明显:

    另一个会话是否处于活动状态 ?

    地址已在使用中 在java.net.PlainSocketImpl.socketBind(本机方法)

    您可能还有另一个会话处于活动状态

        4
  •  0
  •   A Null Pointer    13 年前

    This 这条线可能对你有帮助。

    即使您退出了所有浏览器连接,代码服务器仍在运行 正在等待新连接。你需要停止你以前的连接 启动前启动另一个。另外,请注意,您不一定非得这样做 “浏览器。”

    根据我个人的经验,试着在1分钟左右后启动这个webapp。这个问题会解决的。 不是一个干净的方式来做事情,所以有一个错误提交给GWT团队的这个案例。