Note that this works for versions prior to Tomcat 8.5.3.
The issue can be simply fixed by modifying server.xml:
add the server attribute in the Connector for HTTP/1.1.
The problem can be traced back to a matching change in documentation:
"Overrides the Server header for the http response. If set, the value for this attribute overrides any Server header set by a web application. If not set, any value specified by the application is used. If the application does not specify a value then no Server header is set."
Before it stated:
"Overrides the Server header for the http response. If set, the value for this attribute overrides the Tomcat default and any Server header set by a web application. If not set, any value specified by the application is used. If the application does not specify a value then Apache-Coyote/1.1 is used. Unless you are paranoid, you won't need this feature."
This would one lead to suspect that somehow NetBeans uses this server header string to identify that the server has been properly started. It should be possible to do so irrespective of this header.
See Following link for a formatted version of this issue:
*** Bug 262741 has been marked as a duplicate of this bug. ***
Fixed in web-main 44b68bc11b0b.
Integrated into 'main-silver', will be available in build *201607150002* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
User: Petr Hejl <firstname.lastname@example.org>
Log: #262749 - Netbeans fails to start Tomcat 8.5.3