当Jetty服务器远程启动时出现异常 - java.net.BindException:无法分配请求的地址:bind

时间:2011-06-03 18:44:54

标签: jetty webdriver

我对Jetty和Servlet相当新。对不起,如果这听起来很基本。我使用的是jetty 6.1.22,jetty-util-6.1.22和Selenium 2.0b2。 我试图在代码中配置selenium服务器,以便我可以避免启动selenium的手动过程 远程主机上的服务器。 wiki [1]注意到 - “理论上,这个过程就像将”DriverServlet“映射到URL一样简单,  但也可以将页面托管在轻量级容器中,例如完全在代码“

中配置的Jetty

[编辑#1]

这是我到目前为止所做的,基本上是来自RemoteWebDriverServer wiki [1]的代码副本。

如果我像下面那样设置远程主机,我会遇到绑定异常。

public AppServer() throws Exception { 
        try {
            WebAppContext context = new WebAppContext(); 
            context.setContextPath(""); 
            context.setWar("."); 
            server.addHandler(context); 
            context.addServlet(DriverServlet.class, "/wd/*"); 
            SelectChannelConnector connector = new SelectChannelConnector(); 
            connector.setHost("MyRemoteHostIPAddress");
            connector.setPort(4444); 
            server.addConnector(connector); 
            server.start();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 
      } 
      public static void main(String[] args) throws Exception{ 
              new AppServer(); 
      } 
}

这是堆栈跟踪

2011-06-06 14:39:02.618:INFO::Logging to STDERR via org.mortbay.log.StdErrLog
2011-06-06 14:39:02.633:INFO::jetty-6.1.22
2011-06-06 14:39:02.977:WARN::failed SelectChannelConnector@MyRemoteHostIPAddress:4444: java.net.BindException: Cannot assign requested address: bind
2011-06-06 14:39:02.977:WARN::failed Server@b61fd1: java.net.BindException: Cannot assign requested address: bind
Exception in thread "main" java.net.BindException: Cannot assign requested address: bind
at sun.nio.ch.Net.bind(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)
at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source)
at org.mortbay.jetty.nio.SelectChannelConnector.open(SelectChannelConnector.java:216)
at org.mortbay.jetty.nio.SelectChannelConnector.doStart(SelectChannelConnector.java:315)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.Server.doStart(Server.java:235)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at AppServer.main(AppServer.java:31)

[编辑#2]

请忽略我在下面的前两条评论。我编辑了这个问题。

我有什么遗漏或做错了吗?

谢谢, -Nilesh

[1] http://code.google.com/p/selenium/wiki/RemoteWebDriverServer

1 个答案:

答案 0 :(得分:0)

我认为,问题在于:

 connector.setHost("MyRemoteHostIPAddress");

尝试将"MyRemoteHostIPAddress"替换为"localhost",或直接IP。