今天在看书,把书上的实例看了一遍,考过了运行了一下,可是怎么也运行不了,谷歌吧。报的错误是无法连接数据库。数据库驱动jar也加过了。(jar要加载tomcat下的lib目录下面)

Access denied for user 'user'@'localhost' (using password: YES)

连接数据库的用户名和密码已经改过了,为什么还不行呢。终于谷歌出来了,

无意中想到去Tomcat\conf\Catalina\localhost目录下用ch08.xml文件重写一次配置(Tomcat 加载配置信息都是先Tomcat\conf\Catalina\localhost中的配置信息后是应用目录下的配置信息一个一个加载的,遇到相同的配置 冲突具体如何处理我还不清楚。),却意外的发现里面已经有了一个 ch08.xml文件,本人习惯都是在应用目录下配置所有信息,不是必要都不会在根目录下的Tomcat\conf\Catalina \localhost中配置信息,但却在这里发现了ch08.xml文件,显然这个ch08.xml文件是Tomcat自已产生的,还同时发现了一个 ch04.xml(ch04应用也使用了数据源),打开一看,嘿!居然里面的信息就是原来错误的context.xml数据源配置信息。这下似乎明白过来 了,Tomcat在conf目录下找到了数据源配置信息后就不理会META-INF/context.xml配置信息了。这次把TOMCAT关掉后删掉了 ch08.xml和ch04.xml,重新开启tomcat,与此同时,Tomcat\conf\Catalina\localhost目录下产生了 ch04.xml及ch08.xml,再打开看ch08.xml的内容是后来改正后context.xml的内容了,而且也不会再出现异常了。

注:千万在关掉Tomcat后再删Tomcat\conf\Catalina\localhost下的配置文件(ch08.xml),否则将导致应用程序被删除。

由 此明白过来,Tomcat启动时会自动把应用中META-INF/context.xml用的配置信息自动写入到Tomcat\conf \Catalina\localhost下相应的配置文件中(ch08.xml),而如果第一次你的配置信息出错的话,再怎么改context.xml也 没有用了,因为tomcat在Tomcat\conf\Catalina\localhost下发现了数据源配置信息后就再不理会context.xml 中的信息了。 这是一个难以发现的错误,还好之前看过一些关于Tomcat启动机制的知识。

看来想做java的项目,原理一定是要弄清楚地,不然怎么样也找不到错在哪,即使在简单的错误。