JAX-WS – java.net.BindException: Address already in use: bind

Developing a Java web service development with JAX-WS, and publish an end point…


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

1. Problem

It hits the following error message.


Exception in thread "main" com.sun.xml.internal.ws.server.ServerRtException: 
	Server Runtime Error: java.net.BindException: Address already in use: bind
	...
Caused by: java.net.BindException: Address already in use: bind
	at sun.nio.ch.Net.bind(Native Method)
	...

2. Solution

A very common error message, it means the address (usually it is the port number) is already in used by another application.

To fix it, change the end point port number :


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

Reference

  1. Linux – Which application is using port 8080

11 comments on “JAX-WS – java.net.BindException: Address already in use: bind

  1. Seems like its port already occupied issue. Did any of you guys faced this issue on teamcity/jenkins/bamboo where mutliple people pushed code in their respective feature branches but their Junits using same port number (as it is defined in code) and then each branch is getting build and trying to use same port?

    Reply
  2. In windows

    c:/>netstat -ano

    will list all the protocols, ports and processes listening . check on which port you deploy your service and then Use-

    c:/>taskkill -pid “proces to kill” /f

    to kill the process listening to the port. e.g
    e.g.:
    c:/> taskkill -pid 431 /f

    Reply
  3. Hi,

    I am able to fix this error if we change the port address.

    My problem is:

    I have published a web service at say http://localhost:8085/ws/hello successfully,
    i have added two more methods to the web service implementation class and i would like to publish the web service(update) to the same location.

    how can i publish the updated web services to the previous url?

    Please help me. Quick help would be appreciated.

    but i would like to keep the same port for the updated web service.

    Reply
    1. 1. You do a “netstat -ao” in the command prompt to check for the PID of the published web service.
      2. Kill the process using “taskkill /PID /F”

      It should free the port.

      Reply
  4. So if I want to free that port. What I have to do? Could you please advice.

    Reply
  5. Thank you. Changed the port from 8080 to 8081 and it worked 🙂

    Reply

Leave a Comment

Your email address will not be published. Required fields are marked *