tomcat 400异常
tomcat 400错误
在tomcat 配置文件 server.xml 中有这样的定义
<Engine name="Catalina" defaultHost="localhost">
defaultHost="localhost" 这个的作用是当你访问的时候默认给你分配到那个虚拟主机
在文件里面还有
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
这里定义了一个虚拟主机,那么你访问的时候默认就分配到localhost这个虚拟主机。如果去掉defaultHost="localhost"
你在本地访问http://localhost:8080 可以访问到应为即使没有默认,tomcat 也会用你URL里的 localhost 去对应server.xml定义的localhost主机。但是如果是远程访问的话就不行了,应为http://localhost:8080 这样的形式只有本机可以访问,远程要访问你的话 只能用http://192.168.1.121 这样的形式
那么tomcat 首先会先找有没有defaultHost=“某个虚拟主机”如果没有默认那么会从下边定义的虚拟主机里面找结果 没有192.168.1.121 这样的主机只有一个localhost主机 就是没有找到对应的虚拟主机,这个时候就会报400错误
或者你defaultHost指定了,当是下面没有定义对应的主机也会报 400错误。
在tomcat 配置文件 server.xml 中有这样的定义
<Engine name="Catalina" defaultHost="localhost">
defaultHost="localhost" 这个的作用是当你访问的时候默认给你分配到那个虚拟主机
在文件里面还有
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
这里定义了一个虚拟主机,那么你访问的时候默认就分配到localhost这个虚拟主机。如果去掉defaultHost="localhost"
你在本地访问http://localhost:8080 可以访问到应为即使没有默认,tomcat 也会用你URL里的 localhost 去对应server.xml定义的localhost主机。但是如果是远程访问的话就不行了,应为http://localhost:8080 这样的形式只有本机可以访问,远程要访问你的话 只能用http://192.168.1.121 这样的形式
那么tomcat 首先会先找有没有defaultHost=“某个虚拟主机”如果没有默认那么会从下边定义的虚拟主机里面找结果 没有192.168.1.121 这样的主机只有一个localhost主机 就是没有找到对应的虚拟主机,这个时候就会报400错误
或者你defaultHost指定了,当是下面没有定义对应的主机也会报 400错误。