Tomcat warns that 'The host is not valid'
Issue
- After upgrading from Tomcat 8 to Tomcat 9, we started seeing this message about our host name:
INFO [https-jsse-nio-8443-exec-6] org.apache.coyote.AbstractProcessor.parseHost The host [my_host.com] is not valid
Note: further occurrences of request parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: The character [_] is never valid in a domain name.
at org.apache.tomcat.util.http.parser.HttpParser$DomainParseState.next(HttpParser.java:974)
at org.apache.tomcat.util.http.parser.HttpParser.readHostDomainName(HttpParser.java:870)
at org.apache.tomcat.util.http.parser.Host.parse(Host.java:71)
at org.apache.tomcat.util.http.parser.Host.parse(Host.java:45)
at org.apache.coyote.AbstractProcessor.parseHost(AbstractProcessor.java:294)
at org.apache.coyote.http11.Http11Processor.prepareRequest(Http11Processor.java:763)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:343)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1598)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Environment
- JBoss Enterprise Web Server (JWS) 5.x
- Tomcat 9.0.x
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.