Recommended Free Tools
If Tomcat is “stuck at startup,” first prove whether it is actually hung. A Java process that stays alive can be normal: after a successful start, Tomcat waits for a shutdown signal. Check for the version-appropriate server-startup completion message, test a connector, and inspect the active instance logs before changing memory or timeout settings. If startup really stops, the last lifecycle message, the first exception, the effective CATALINA_BASE, and repeated JVM thread dumps usually identify whether the cause is configuration, deployment, custom startup code, or blocked external I/O.
How to fix Tomcat stuck at startup: establish what “stuck” means
Record these facts from the same launch attempt:
- The exact command, service action, container entrypoint, or IDE run configuration.
- Elapsed time and the timestamp of the last startup log line.
- Whether a Tomcat JVM exists and whether the service manager reports it as running.
- Whether the configured HTTP or HTTPS connector accepts a connection.
- The Tomcat and Java versions, operating system, Java executable,
CATALINA_HOME, andCATALINA_BASE.
Tomcat’s documented lifecycle eventually calls await() and waits for a shutdown command after startup completes. Therefore, a command that does not exit, or a Java process that remains present, is not proof of a hang. Compare the log with the startup-completion message for your Tomcat major version and verify the connector and a simple context before intervening. See the [Tomcat startup architecture documentation](https://tomcat.apache.org/tomcat-9.0-doc/architecture/startup.html).
Find the logs for the instance that is actually running
Unix and Linux launches
Inspect ${catalina.base}/logs and the stdout/stderr capture used by the service manager. Tomcat startup scripts commonly redirect console output to catalina.out, which can also contain uncaught exceptions and requested thread dumps. A systemd unit, container runtime, or supervisor may redirect that stream elsewhere, so check the unit or wrapper rather than assuming the default.
Windows services
Windows service wrappers use their own stdout, stderr, and service-log filenames. Open the service definition or wrapper configuration to discover the real files. Do not rely on the logs from an interactive startup.bat run if the failing instance is a service.
#1 Best Overall
- Dell PowerEdge R730xd 24B SFF 2U Server
- 2x Intel Xeon E5-2690 v4 2.6Ghz 14-Core (28-cores Total)
- 128GB DDR4 RAM – 4x 1.2TB 10K SAS 2.5” 12Gb/s
- Dell H730P mini 2GB 12Gb/s RAID
- 2x 750W PSU - 2x 10Gb SFP+ 2x 1Gb (RJ45) NIC
Read the first failure, not only the last repetition
Start at the beginning of the current startup attempt. Preserve the first exception and every nested Caused by section, plus the final component, lifecycle event, context path, or class named before progress stops. Repeated secondary errors often hide the original deployment or configuration fault.
Tomcat uses JULI, based on java.util.logging. Its normal configuration is ${catalina.base}/conf/logging.properties; the [Tomcat 11 logging guide](https://tomcat.apache.org/tomcat-11.0-doc/logging.html) explains the layout. Increase logging narrowly and temporarily. Turning every logger to DEBUG can produce megabytes of output and itself slow startup, as the historical [Tomcat 8 logging guide](https://tomcat.apache.org/tomcat-8.0-doc/logging.html) cautions.
Verify CATALINA_BASE, versions, and service identity
Tomcat separates the installation directory (CATALINA_HOME) from the runtime instance (CATALINA_BASE). Confirm the values used by the service, not just those printed in your shell. Compare:
${catalina.base}/conf/server.xmlandweb.xml.- Log and temporary directories, ownership, permissions, and available space.
- The Java vendor and version and the executable path.
- The service account, environment variables, working directory, and wrapper arguments.
Tomcat does not fall back from missing files in CATALINA_BASE/conf to CATALINA_HOME/conf. A missing runtime configuration can therefore stop startup or leave required functionality unavailable. Restore the matching configuration for that installation and version, correct permissions, and restart; do not edit an arbitrary copy of server.xml. Configuration is read at startup, so changes have no effect until a restart. The [Tomcat 11 introduction](https://tomcat.apache.org/tomcat-11.0-doc/introduction.html) also warns that issues and solutions can differ between major versions.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchRank #2
- Model: Dell OptiPlex 7050 Small Form Factor (SFF)
- Processor: Intel Core i7-7700 3.60 GHz
- Memory: 32GB DDR4 Ram
- Storage: 1TB Solid State Drive (SSD) Fast Boot + Storage
- Operating System: Windows 11 Pro (64-bit)
When Manager is enabled and authorized, its serverinfo and vminfo functions can expose useful version, operating-system, and JVM properties. Treat Manager as a protected administrative application; never expose it publicly merely to diagnose a boot problem.
Determine whether web-application deployment is the stopping point
Tomcat starts server components and containers, then HostConfig responds to lifecycle events to deploy web applications. If the last line names one context or application, investigate that application before changing Tomcat-wide settings.
Check the deployment inputs
- Verify that the WAR, expanded directory, or configured document base exists and is readable by the service account.
- Validate
WEB-INF/web.xmland any context XML for well-formed syntax. - Check every library needed by listeners, filters, servlets, and startup initializers.
- Review initialization code for database, DNS, filesystem, credential, or network work with no reachable endpoint or timeout.
Tomcat Manager documentation identifies an unreadable or missing document base, malformed /WEB-INF/web.xml, and missing classes while listener or filter classes initialize as common webapp-startup exceptions. Capture the complete trace at [Manager App How-To](https://tomcat.apache.org/tomcat-9.0-doc/manager-howto.html) for the relevant diagnostics.
Isolate one application safely
During a maintenance window, preserve the WAR, expanded directory, and context configuration, then temporarily disable or remove only the suspected application. If Tomcat starts, reintroduce it in a controlled environment and fix the exact parser, classpath, permission, or initialization error. Avoid casual use of Manager’s undeploy operation: documented undeploy can delete the WAR, expanded directory, and context XML.
Free tools Windows power users keep installed
One-click scans. No signup required.
Rank #3
- MODEL P86811-005: HPE ProLiant MicroServer Gen11 preconfigured with Intel Xeon 6315P 2.80GHz 4-core processor, ideal for small business IT, edge workloads, and on-premise compute
- WHISPER-QUIET & SPACE-SAVING: Ultra-compact mini tower design fits easily in small office spaces; supports wall, flat, or vertical placement for deployment flexibility
- READY OUT OF THE BOX: Includes 16GB DDR5 UDIMM memory (expandable to 128GB), dedicated iLO-M.2 port kit, embedded Intel VROC SATA controller for Gen11 servers, 180w external power adapter and 1/1/1 year warranty for dependable plug-and-play server operation
- EXPANDABLE DESIGN: Two PCIe slots (including PCIe 5.0) and four LFF-NHP drive bays provide robust options for storage and component scalability. Features new MR408i-p controller support for enhanced storage performance
- INTEGRATED REMOTE MANAGEMENT: Comes with HPE iLO 6 and embedded TPM 2.0, enabling secure, remote administration through browser, command line, or API with shared port access
Consider custom lifecycle listeners
A LifecycleListener registered in server.xml can customize startup. If logs stop at a custom listener, inspect its class, dependencies, and external waits. In a safe test environment, disable only that hook, restart, and compare the result. Do not remove unrelated listeners or replace the entire configuration as a guess.
Capture JVM evidence when logs stop but the process remains alive
A live JVM with no new log lines needs more evidence than a single snapshot. Take at least two thread dumps a short interval apart and compare the same thread names and stack frames. Repeated waits on one lock, filesystem call, DNS or network operation, class initializer, or application initialization path narrow the location of the block; one dump alone does not prove deadlock.
Use Tomcat Manager when it is already secured
Manager documents these text endpoints:
/manager/text/threaddumpwrites a JVM thread dump containing thread names, states, and stack frames./manager/text/vminforeturns JVM diagnostic information.
They require Manager to be installed, enabled, reachable, and authorized. Restrict access to an administrative network and remove or close access after diagnosis. If Manager is unavailable, use the thread-dump mechanism supported by your deployed Java release, operating system, and service wrapper, writing output to a protected file; there is no single command that is correct for every combination.
Map the evidence to a targeted fix
| Observed evidence | Likely scope | Action |
|---|---|---|
Missing or unreadable files under CATALINA_BASE/conf |
Runtime identity or permissions | Correct the service’s base path, restore matching configuration, fix ownership/readability, and restart. |
| Trace names a context, parser, document base, listener, or filter | Web application deployment | Fix the specific syntax, file, dependency, or initialization failure shown by the first exception. |
| Last message names a custom lifecycle listener | Startup customization | Check its classpath and external waits; disable only that hook in a controlled test if evidence supports it. |
| Repeated dumps show blocked external I/O | Dependency reached by startup code | Investigate the named database, DNS, filesystem, network, or credential endpoint and its timeout settings. |
| No completion message and no useful exception | Insufficient evidence | Reproduce in staging with identical versions and configuration, preserve full logs, and capture repeated dumps before changing flags. |
Do not apply unrelated heap, garbage-collection, or timeout flags merely because Tomcat appears slow. A diagnostic stack and the first exception should determine the change.
Rank #4
- MODEL P74439-005: Compact and affordable HPE ProLiant MicroServer Gen11 powered by Intel Pentium Gold G7400 3.7GHz processor, ideal for file sharing, NAS, and basic business workloads
- READY OUT OF THE BOX: Includes 16GB DDR5 UDIMM memory (expandable to 128GB), one 1TB SATA 6G Business Critical HDD, embedded Intel VROC SATA, dedicated iLO-M.2 port kit, 180w external power adapter and 1/1/1 warranty for dependable plug-and-play server operation
- WHISPER-QUIET & SPACE-SAVING: Ultra-compact mini tower design fits easily in small office spaces; supports wall, flat, or vertical placement for deployment flexibility
- INTEGRATED REMOTE MANAGEMENT: Comes with HPE iLO 6 and embedded TPM 2.0 for secure, license-free remote server administration through shared port access
- EXPANDABLE DESIGN: Two PCIe slots (including PCIe 5.0) and four LFF-NHP drive bays provide robust options for storage and component scalability. Features new MR408i-p controller support for enhanced storage performance
Compare launch modes to expose hidden differences
If Tomcat starts from a shell but not as a service, compare the effective environment rather than the command text. Check the Java executable, CATALINA_HOME, CATALINA_BASE, current directory, service account, file permissions, proxy and DNS settings, stdout/stderr destination, and wrapper arguments. If it starts with applications absent, compare the last lifecycle component reached and whether a particular context produces the deployment exception. These comparisons isolate configuration and identity differences without assuming a cause.
Recovery checklist
- Confirm whether startup completion was logged and whether a connector responds.
- Identify the actual service JVM, its version, Java path,
CATALINA_HOME, andCATALINA_BASE. - Collect the complete current-attempt logs and preserve the first exception chain.
- Verify configuration files, permissions, paths, and log destinations under the active base.
- If deployment is last, isolate the named application and inspect its document base, descriptor, classes, and initialization dependencies.
- If the JVM remains active without progress, capture and compare repeated thread dumps.
- Apply the smallest fix supported by the evidence, restart, and verify both startup logs and an actual request.
Or skip the browser setup
If you need a clean screenshot of a Tomcat status page, deployment result, or diagnostic dashboard while documenting the incident, ScreenshotNeo can capture it with one request. It accepts consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and billing result. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients.
Use the API documentation at https://screenshotneo.com/docs/ for authentication and options. A basic call is:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Replace the URL with an authorized status or report page. The service also supports full-page captures with lazy images, CSS-selector element capture, dark mode, 12 device presets or custom viewports, retina scale, PDF paper size/margins/landscape/page ranges, HTML/CSS-to-image, custom CSS and JavaScript, pre-capture clicks, hidden selectors, waits for selectors/delay/network idle, blocked ads/trackers/requests/resource types, custom headers/cookies/user agents/Authorization, timezone and geolocation, transparent backgrounds, resizing, TTL caching, signed public-image links, asynchronous signed webhooks, bulk capture of up to 100 URLs per call, a usage API, OpenAPI, and compatibility with parameter names used by other screenshot APIs.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →There is a free allowance of 1,000 screenshots per month with no card. Paid plans start at $5 for 3,000 shots; every feature is included on every plan. Create a free ScreenshotNeo account.
Best Value
- HP Z4 G4 Workstation Tower
- Intel Xeon W-2133 6-Core 3.6GHz (3.9GHz Turbo)
- 64GB DDR4 Memory - Nvidia Quadro P400 2GB
- 512GB NVMe M.2 SSD (boot) + 2TB HDD (storage)
- Windows 11 Pro 64-bit
FAQ
Should I kill a Tomcat process that has not exited?
Not before checking for the startup-completion message and a responding connector. A running process can be Tomcat’s normal post-startup wait state.
Why does editing CATALINA_HOME/conf not fix my service?
The service may use a different CATALINA_BASE. Tomcat does not fall back from a missing base configuration to the home directory, so identify the effective base first.
Is one thread dump enough?
No. Compare repeated dumps taken after a short interval; unchanged stacks are more useful for locating a persistent wait.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsCan I expose Manager temporarily for troubleshooting?
Do not expose it publicly. Use an existing restricted administrative path or an operating-system/JVM dump mechanism appropriate to your environment.
Frequently Asked Questions
How do I tell a slow startup from a true hang?
Check the final log timestamp, startup-completion message, connector response, and repeated thread dumps rather than process existence alone.
What should I send when asking for help?
Provide Tomcat and Java versions, launch mode, effective CATALINA_HOME/CATALINA_BASE, complete startup logs including the first exception, and repeated protected thread dumps.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




