同事到客户那里去演示系统,笔记本上安装了Tomcat(v6.0.18)+Oracle9i,到客户处发现Tomcat无法连接到数据库!(没插网线,客户拿来无线路由也不行)
错误信息是:无法获取网卡连接!(当然是翻译后的,原文是英文)
但奇怪的问题是回公司插上网线立马正常!
于是,开始怀疑是网卡问题,并安装了虚拟网卡,将Tomcat/conf/server.xml里host设置为虚拟网卡的地址,还是不行!
之前试过127.0.0.1和localhost均不行。
继续检查,数据库服务正常,可以用客户端连上,排除数据库监听器的问题。
于是又重新回到Tomcat目录,怀疑还是Tomcat的问题。这时在Tomcat/conf目录发现一个catalina目录(后来对比检查我的Tomcat并无此目录,可能是版本或者并没有更换ip的原因),
里面有三个子目录,分别是localhost、127.0.0.1、192.168.2.28(虚拟网卡地址),分别点进去看,
里面只有一个文件:postback.xml,里面的内容也很简单,就是数据源的配置信息,但里面有一点信息引起了我的注意,
就是数据库的jdbc连接url,其中库地址为:192.168.2.80(?),问题可能出在这里,于是将它改为192.168.2.28,
重启Tomcat,问题解决!
问题分析:
catalina目录里的三个子目录分别对应着本地的三种IP设置,在第一次部署的时候就创建了对应的目录,并包含了postback.xml文件,里面的内容并不会随着以后对设置的修改而改变,或者说根本就是漏改了这个文件。导致Tomcat启动就去找80这个地址,单机环境下,该地址当然不存在,也就发生了前文所述的莫名其妙的错误。这个问题虽小,但查起来可就没那么容易了。:)