Opening Up Port 80 For Tomcat to Use On Windows

By default, for NetX to be able to start/run, the Tomcat service has to be able to bind to (and listen on) port 80 (the HTTP port). If Tomcat is not able to bind to port 80 and start, then another application or service has already taken this port. This will be evident in the stderr.log with this message:

SEVERE: Failed to initialize end point associated with ProtocolHandler ["ajp-bio-80"] Address already in use: JVM_Bind <null>:80


Catalina.start: LifecycleException: Permission denied:80
LifecycleException: Permission denied:80

For Tomcat to start, you will have to figure out what’s using port 80 (and possibly port 443) on your system, and stop and disable it.

NetX is not responsible for any issues caused by following the methods listed below. Please consult an experienced server administrator before altering your environment.

Known Windows services that use port 80

From Services Manager (run: services.msc), stop and disable these native Windows Services which are known to bind to port 80.

Double click Service, and change ‘Startup Type’ to ‘Disabled’.

  1. SQL Server Reporting Services (ReportServer)
  2. Web Deployment Agent Service (MsDepSvc)
  3. BranchCache (PeerDistSvc)
  4. Sync Share Service (SyncShareSvc)
  5. World Wide Web Publishing Service (W3SVC)
  6. Internet Information Server (WAS, IISADMIN)

You might, or might not have some of these Services installed and running:

A. Other instances of Apache
B. IIS and/or WebMatrix
C. Tomcat

IIS and Tomcat are web-server applications that also bind to port 80 by default.

Use NETSTAT to detect port 80 listeners

Open the command line (System tab, button: Command Line) and run:

netstat -o -n -a | findstr
netstat -o -n -a | findstr

Inspect the lines with a “Local Address” showing port 80 and/or 443 use. Note the PID number. Then open Task Manager (run: taskmgr.exe), go to its Processes Tab, see if you can find the application with that same PID number. It needs to be shut down. If you don’t see it, click the “Show processes from all users” button.

On some systems you can also get the PID directly by using netstat’s ‘-b’ option:

-b    Displays the executable involved in creating each connection or
      listening port. In some cases well-known executables host
      multiple independent components, and in these cases the
      sequence of components involved in creating the connection
      or listening port is displayed. In this case the executable
      name is in [] at the bottom, on top is the component it called,
      and so forth until TCP/IP was reached. Note that this option
      can be time-consuming and will fail unless you have sufficient
Was this article helpful?
0 out of 0 found this helpful