尝试通过ant脚本运行Java服务器时无法分配请求的地址
我必须通过一个分配的ant任务来执行一个编译好的Java服务器,以便为它构建一个客户端。 我没有服务器的代码,但它应该在本地主机启动后在8181端口上运行。它可以在windows和其他linux机器上运行,但我不能在这个机器上运行(crunchbang)。 这是我得到的错误:尝试通过ant脚本运行Java服务器时无法分配请求的地址,java,linux,java-server,Java,Linux,Java Server,我必须通过一个分配的ant任务来执行一个编译好的Java服务器,以便为它构建一个客户端。 我没有服务器的代码,但它应该在本地主机启动后在8181端口上运行。它可以在windows和其他linux机器上运行,但我不能在这个机器上运行(crunchbang)。 这是我得到的错误: BUILD SUCCESSFUL Total time: 1 second root@drne:/home/wallen/uni/workspace/A5# ant run-server Buildfile: /home/
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
构建成功
总时间:1秒
root@drne:/home/wallen/uni/workspace/A5#ant run server
构建文件:/home/wallen/uni/workspace/A5/build.xml
固定种子:
运行服务器:
线程“main”com.sun.xml.internal.ws.server.ServerRtException中的[java]异常:服务器运行时错误:java.net.BindException:无法分配请求的地址
[java]位于com.sun.xml.internal.ws.transport.http.server.ServerMgr.createContext(ServerMgr.java:102)
[java]位于com.sun.xml.internal.ws.transport.http.server.HttpEndpoint.publish(HttpEndpoint.java:63)
[java]位于com.sun.xml.internal.ws.transport.http.server.EndpointImpl.publish(EndpointImpl.java:171)
[java]位于com.sun.xml.internal.ws.spi.ProviderImpl.createAndPublishindPoint(ProviderImpl.java:113)
[java]位于javax.xml.ws.Endpoint.publish(Endpoint.java:240)
[java]at it.polito.dp2.PJS.lab5.PJSInfoServer.main(未知源代码)
[java]原因:java.net.BindException:无法分配请求的地址
[java]位于sun.nio.ch.Net.bind0(本机方法)
[java]位于sun.nio.ch.Net.bind(Net.java:344)
[java]位于sun.nio.ch.Net.bind(Net.java:336)
[java]位于sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:199)
[java]位于sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
[java]位于sun.net.httpserver.ServerImpl.(ServerImpl.java:98)
[java]位于sun.net.httpserver.HttpServerImpl.(HttpServerImpl.java:50)
[java]位于sun.net.httpserver.DefaultHttpServerProvider.createHttpServer(DefaultHttpServerProvider.java:35)
[java]位于com.sun.net.httpserver.httpserver.create(httpserver.java:129)
[java]位于com.sun.xml.internal.ws.transport.http.server.ServerMgr.createContext(ServerMgr.java:84)
[java]。。。还有5个
[java]java结果:1
我尝试过的事情:
- 检查该端口上是否有其他服务器在运行
- 以su的身份运行它
- 答案表明,如果名称“localhost”无法解析为IP地址,则可能会发生这种情况。检查您的
/etc/hosts
文件,并确保它具有localhost
到地址127.0.0.1
的映射。答案表明,如果名称“localhost”无法解析为IP地址,则可能会发生这种情况。检查您的/etc/hosts
文件,确保它具有localhost
到地址127.0.0.1
的映射,我设法修复了导致此错误的原因,正如我在开始时所想的,它与任何java代码都没有关系:我的环回接口异常关闭。
ifconfig lo up
成功了。我成功地修复了导致我出现此错误的原因,正如我在开始时所认为的,它与任何java代码都无关:我的环回接口异常关闭。
ifconfig lo up
成功了。确保仔细检查要部署到的服务器地址。我的服务器地址拼错了,我得到了完全相同的错误
我正在使用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));
希望能有所帮助。请确保仔细检查要部署到的服务器地址。我的服务器地址拼错了,我得到了完全相同的错误 我正在使用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));
希望能有所帮助。请给我们看一些代码。我只有服务器的.class文件,因为任务是编写一个与我们提供的服务器兼容的客户端。我可以假设服务器代码工作正常,执行后应该绑定到localhost:8181。请给我们看一些代码。我只有服务器的.class文件,因为任务是编写与我们提供的服务器兼容的客户端。我可以假设服务器代码工作正常,执行后应该绑定到localhost:8181。谢谢您的回答!遗憾的是,事实并非如此,hosts文件正确地将localhost映射到127.0.0.1。我还试图对与IPV6地址映射相关的条目进行评论,认为它们可能会出现问题,但这也不起作用。谢谢您的回答!遗憾的是,事实并非如此,hosts文件正确地将localhost映射到127.0.0.1。我还试图对与IPV6地址映射相关的条目进行评论,认为它们可能会出现问题,但这也不起作用。