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错误。