Получена ошибка для простого веб-сервиса Java

#java

#java

Вопрос:

Получил эти ошибки при попытке запустить мой первый учебник по веб-сервису Java в Eclipse. Что это значит: (

 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
  

Ответ №1:

Это означает, что у вас уже есть процесс, привязанный к номеру порта. Остановите любой процесс, который прослушивает этот порт, и все будет в порядке. Возможно, сервер уже запущен, и вы должны иметь возможность видеть его вывод в виде консоли в Eclipse. Если вы видите это, щелкните большой красный квадрат, чтобы остановить это. Если вы запустили сервер вне Eclipse, найдите его с помощью netstat | grep 'port number' , а затем отключите его.

Ответ №2:

Это означает, что вы пытаетесь запустить контейнер, прослушивающий порт, который уже занят другим экземпляром. Вы можете попробовать запустить netstat , чтобы узнать идентификатор процесса (PID) и остановить его.

Ответ №3:

Это просто означает, что ваш адрес (обычно это номер порта, xxxx) уже используется другим приложением. Попробуйте изменить номер вашего порта для издателя конечной точки.

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

Источник: Java.Net.BindException: Адрес, который уже используется: Bind