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

Jetty服务器远程启动时出现异常-java.net.BindException:无法分配请求的地址:bind,jetty,webdriver,Jetty,Webdriver,我对Jetty和Servlet相当陌生。抱歉,如果这听起来很基本。我使用的是jetty 6.1.22、jetty-util-6.1.22和Selenium 2.0b2。 我试图在代码中配置selenium服务器,以避免手动启动selenium 远程主机上的服务器。wiki[1]指出,理论上,这个过程就像将DriverServlet映射到URL一样简单, 但也可以将页面托管在轻量级容器中,例如完全用代码配置的Jetty [第1版] 这里是我到目前为止所拥有的,基本上是RemoteWebDriver

我对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)
[编辑二]

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

是否有我遗漏或做得不正确的地方

谢谢, -尼利斯


[1]http://code.google.com/p/selenium/wiki/RemoteWebDriverServer我认为,问题在于:

 connector.setHost("MyRemoteHostIPAddress");

尝试将MyRemoteHostIPAddress替换为localhost或direct IP。

请忽略我之前发布的第二个异常,我已修复该异常。结果是我的代码中有一个bug。因此,当我在远程主机上通过本地代码运行start the jetty server时,我实际上是在从本地计算机连接到URL,而不是。在此更改之后,测试工作正常。我现在唯一的问题是——如何从本地机器远程启动服务器。跟随似乎仍然是一个问题。任何人connector.setHostMyRemoteHostIPAddress;connector.setPort3002;这是使用connector.setHostMyRemoteHostIPAddress时堆栈跟踪的一部分;SelectChannelConnector@MyRemoteHostIPAddress:3002:java.net.BindException:无法分配请求的地址:绑定失败Server@b61fd1:java.net.BindException:无法分配请求的地址:bind