Kiran
Kiran

Reputation: 366

Terminating port of spring boot application in Eclipse

Terminated by clicking on Red Icon in console tab but when I rerun it is saying port is already in use.

I terminated port using Taskkill command in command prompt. Any suggestions on terminating it from Eclipse would be helpful instead of command prompt

Upvotes: 1

Views: 1478

Answers (3)

Jason Breitweiser
Jason Breitweiser

Reputation: 1

I found the best way to stop spring from holding the port was to write a script that looks for the process holding the port and auto kill it. Then attach that script to an external tool job in eclipse. I adapted a powershell script I found. Called it kill-port.ps1 and is located in base of the report where I had the issue.

param ($port)

$foundProcesses = netstat -ano | findstr :$port
$activePortPattern = ":$port\s.+LISTENING\s+\d+$"
$pidNumberPattern = "\d+$"

IF ($foundProcesses | Select-String -Pattern $activePortPattern -Quiet) {
  $matches = $foundProcesses | Select-String -Pattern $activePortPattern
  $firstMatch = $matches.Matches.Get(0).Value

  $pidNumber = [regex]::match($firstMatch, $pidNumberPattern).Value

  taskkill /pid $pidNumber /f
}

Then set up an external tool configuration

Location: C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe Argument: ${workspace_loc:/workspacename/kill-port.ps1} 8080

Now I just run the kill command after each test where I know it leaves the port bond to a process. Not the most elegant but easier then running a few commands in a shell. This is windows specific but I am sure the same type script can be created for Unix.

Upvotes: 0

Mykhailo Skliar
Mykhailo Skliar

Reputation: 1367

Usually terminating application from Eclipse helps. Sometimes, though, it doesn't help. In such cases, I have to restart the eclipse. Unfortunately, I don't have any better solution. There might be something wrong with your application, if this issue happens too often for you. Eclipse usually tries to "gracefully" shut down the application and release resources, before shutting down the server. Maybe during this time the application "hangs" and doesn't respond. There could be many reasons for that. One of them: your application doesn't close file resources correctly, with try... finally, and so on.

To summarise: In 95% of the cases, shutting down the server from eclipse works. If it doesn't, then you have to restart the eclipse, or maybe even kill the process from the command-line. If it happens too often, let's say in 50% of the cases, then there is something wrong with your application.

Upvotes: 1

Hamada
Hamada

Reputation: 1898

Open Eclipse

Go to Servers panel

Right click on Tomcat Server select Open, Overview window will appear.

Open the Portstab. You will get the following:

Tomcat adminport

HTTP/1.1

AJP/1.3

I changed the port number of HTTP/1.1 (i.e. to 8081)

You might have to also change the port of Tomcat adminport (i.e. to 8006) and of AJP/1.3 (i.e. to 8010).

Access your app in the browser at http://localhost:8081/...

Upvotes: 0

Related Questions