Win7系统启动Tomcat5.5后无法访问localhost:8080

【问题描述】

    Tomcat 5.5.36

    端口:8080(确定未被占用)

    在Win7下直接启动解压缩后的Tomcat/bin/startup.bat,正常启动。但使用浏览器访问如下地址均无法正常访问,不能打开test控制台。tomcat端口8080错误信息如下图。


1. http://localhost:8080

    2. http://127.0.0.1:8080

    3. http://192.168.7.7:8080(本机IP)
图:


Win7系统启动Tomcat5.5后无法访问localhost:8080_第1张图片

【我的解决】

    经反复检查,设置CATALINA_HOME也没用。突然想起自己之前改过hosts文件。立马改过来试试!!

注释掉这[127.0.0.1       localhost]一行之后,打开浏览试试。好使!能正常访问了。

    但很快又碰到了一个问题,使用localhost可以访问,但使用127.0.0.1无法正常访问。于是Google,得到解决办法:

    在server.xml中的


<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
    <Connector port="8080" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" />

末尾添加 address="0.0.0.0" 即可解决。据说原因是因为:tomcat5默认以ipv6的格式来解析地址,添加此属性,告知其使用Ipv4格式解析地址。

<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
    <Connector port="8080" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" address="0.0.0.0"/>

至此,突然明白了,为什么在hosts文件中添加了[127.0.0.1       localhost]行后无法正常访问tomcat了,因为comcat不能正常解析127.0.0.1。于是重新在hosts中写下:127.0.0.1       localhost。启动,访问,果然好使。也就是tomcat在win7下(或者说我机子上的环境)默认ipv6,需要添加address="0.0.0.0"这么一个属性即可。

【疑惑】

虽然问题解决了,但还是心有疑惑:

 请求地址解析不应该是DNS做的事,tomcat的解析机制是怎么回事呢?

你可能感兴趣的:(tomcat,hosts,localhost,访问,127.0.0.1,无法)