1

我必须通过 ant 任务执行已编译的 Java 服务器以进行分配,以便我可以为其构建客户端。我没有服务器的代码,但它应该在启动后在 localhost 的 8181 端口上运行。它可以在 Windows 和其他 linux 机器上运行,但我无法在这台机器上运行(crunchbang)。这是我得到的错误:

BUILD SUCCESSFUL
Total time: 1 second
root@drne:/home/wallen/uni/workspace/A5# ant run-server
Buildfile: /home/wallen/uni/workspace/A5/build.xml

setseed:

run-server:
     [java] Exception in thread "main" com.sun.xml.internal.ws.server.ServerRtException: Server Runtime Error: java.net.BindException: Cannot assign requested address
     [java]     at com.sun.xml.internal.ws.transport.http.server.ServerMgr.createContext(ServerMgr.java:102)
     [java]     at com.sun.xml.internal.ws.transport.http.server.HttpEndpoint.publish(HttpEndpoint.java:63)
     [java]     at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.publish(EndpointImpl.java:171)
     [java]     at com.sun.xml.internal.ws.spi.ProviderImpl.createAndPublishEndpoint(ProviderImpl.java:113)
     [java]     at javax.xml.ws.Endpoint.publish(Endpoint.java:240)
     [java]     at it.polito.dp2.PJS.lab5.PJSInfoServer.main(Unknown Source)
     [java] Caused by: java.net.BindException: Cannot assign requested address
     [java]     at sun.nio.ch.Net.bind0(Native Method)
     [java]     at sun.nio.ch.Net.bind(Net.java:344)
     [java]     at sun.nio.ch.Net.bind(Net.java:336)
     [java]     at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:199)
     [java]     at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
     [java]     at sun.net.httpserver.ServerImpl.<init>(ServerImpl.java:98)
     [java]     at sun.net.httpserver.HttpServerImpl.<init>(HttpServerImpl.java:50)
     [java]     at sun.net.httpserver.DefaultHttpServerProvider.createHttpServer(DefaultHttpServerProvider.java:35)
     [java]     at com.sun.net.httpserver.HttpServer.create(HttpServer.java:129)
     [java]     at com.sun.xml.internal.ws.transport.http.server.ServerMgr.createContext(ServerMgr.java:84)
     [java]     ... 5 more
     [java] Java Result: 1

我尝试过的事情:

  • 检查是否有另一台服务器在该端口上运行
  • 以 su 运行它
4

3 回答 3

1

该问题的答案表明,如果名称“localhost”无法解析为 IP 地址,则可能会发生这种情况。检查您的/etc/hosts文件并确保它具有localhost到地址的映射127.0.0.1

于 2013-01-22T09:44:45.457 回答
0

我设法解决了给我这个错误的原因,并且正如我在事情开始时所认为的那样,它与任何 java 代码都没有关系:我的环回接口奇怪地关闭了。 ifconfig lo up成功了。

于 2013-01-30T01:33:41.357 回答
0

确保仔细检查要部署到的服务器地址。我的服务器地址拼写错误,我得到了完全相同的错误......

我正在使用 Java 6 和 7 中包含的 Web 服务库:

Endpoint.publish("http://myservername.com/myapi", new ServiceHandler(appSettings));

仔细检查“myservername.com”的值,这是假设端口 80。如果您有其他端口(即 8080),那么命令将如下所示:

Endpoint.publish("http://yourservername.com:8080/myapi", new ServiceHandler(appSettings));

希望有帮助。

于 2013-09-20T21:44:46.883 回答