1. Java

The character [_] is never valid in a domain name

0、问题

今天部署遇到了一个问题

使用的是 nginx/1.18.0 做的反向代理;tomcat/8.5 做的容器。

配好各种配置文件,tomcat启动成功后,打开项目主页报错如下:

java.lang.IllegalArgumentException: The character [_] is never valid in a domain name. at 
org.apache.tomcat.util.http.parser.HttpParser$DomainParseState.next(HttpParser.java:946) at 
org.apache.tomcat.util.http.parser.HttpParser.readHostDomainName(HttpParser.java:842) at 
org.apache.tomcat.util.http.parser.Host.parse(Host.java:66) at 
org.apache.tomcat.util.http.parser.Host.parse(Host.java:40) at 
org.apache.coyote.AbstractProcessor.parseHost(AbstractProcessor.java:277) at 
org.apache.coyote.ajp.AjpProcessor.prepareRequest(AjpProcessor.java:934) at 
org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:456) at 
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at 
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:800) at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1471) at 
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at 
java.lang.Thread.run(Thread.java:745)

1、查找

我的项目域名里面有 ”_“ 居然还不行,去stackoverflow看了一下发现了问题的原因:

3、解决

最终我选择了去除域名中的下划线解决了该问题。

参考