有一个简单的Java Web服务错误

时间:2011-04-25 06:52:12

标签: java

尝试在Eclipse中运行我的第一个Java Web服务教程时遇到这些错误。这意味着什么:(

SayHello Web Service started.
Exception in thread "main" com.sun.xml.internal.ws.server.ServerRtException: Server Runtime Error: java.net.BindException: Address already in use: bind
    at com.sun.xml.internal.ws.transport.http.server.ServerMgr.createContext(Unknown Source)
    at com.sun.xml.internal.ws.transport.http.server.HttpEndpoint.publish(Unknown Source)
    at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.publish(Unknown Source)
    at com.sun.xml.internal.ws.spi.ProviderImpl.createAndPublishEndpoint(Unknown Source)
    at javax.xml.ws.Endpoint.publish(Unknown Source)
    at com.myfirst.wsServer.RunService.main(RunService.java:14)
Caused by: java.net.BindException: Address already in use: 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 sun.net.httpserver.ServerImpl.<init>(Unknown Source)
    at sun.net.httpserver.HttpServerImpl.<init>(Unknown Source)
    at sun.net.httpserver.DefaultHttpServerProvider.createHttpServer(Unknown Source)
    at com.sun.net.httpserver.HttpServer.create(Unknown Source)
    ... 6 more

3 个答案:

答案 0 :(得分:5)

这意味着您已经有一个绑定到端口号的进程。停止正在收听该端口的任何进程,你就可以开始了。它可能已经启动了服务器,您应该能够在Eclipse上将其输出视为控制台。如果您看到,请单击大红色方块以停止它。如果您在Eclipse之外启动服务器,请使用netstat | grep 'port number'找到它,然后将其删除。

答案 1 :(得分:2)

这意味着您正在尝试启动容器侦听已被另一个实例占用的端口。您可以尝试运行netstat来查找进程ID(PID)并将其终止。

答案 2 :(得分:0)

它只是意味着您的地址(通常是端口号,xxxx)已被其他应用程序使用。尝试更改终点发布者的端口号。

public static void main(String[] args) {
    Endpoint.publish("http://localhost:1234/ws/hello", new WallStreetImpl());
}

来源:Java.Net.BindException: Address Already In Use: Bind