前段时间公司换了新笔记本, 装了WIN7, 其实挺高兴的, 而且我自己家里的台式机在10年7,8月左右就用了WIN7, 自己感觉用WIN开发没什么问题, 也就没换系统了.
结果, 真测试起来才发现, 同事都无法访问我的应用, 也发现我自己只能通过localhost访问tomcat, 无法通过ip地址访问(127.0.0.1/10.4.250.107), 真是很诡异.
起初认为是防火墙, 可折腾了半天都无果, 在网上搜了很久, 各种办法尝试了也没效果.
最后, 总结了一下网上的观点, 发现应该是IPv6和IPv4的问题, 我ping localhost和ping liu-laptop(机器名) 得到的IP都是IPv6格式.
最后搜索了一下"win7 tomcat ipv6", 果然找到了有效的解决办法...下面直接上方法.
1. 使用cmd命令netstat -n, 查看tomcat地址绑定, 发现是绑定到::1, IPv6.
2. 配置tomcat的server.xml, 更改connector配置, 端口不用改, 加上address="0.0.0.0", 使其绑定到IPv4, 如下
<Connector port="8080" maxHttpHeaderSize="8192" address="0.0.0.0"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
3. 重启tomcat, 再次使用netstat -n, 查看tomcat地址绑定, 已变为IPv4.
大功告成!
P.S. 据碰到过此问题的同事称, 只有TOMCAT5.5存在此问题, 其他版本的TOMCAT没有此问题, 囧!(未验证)