在Server.xml中设置如下 <Resource name="jdbc/cardsystem" type="javax.sql.DataSource" password="123456" driverClassName="com.mysql.jdbc.Driver" maxIdle="2" maxWait="5000" username="root" url="jdbc:mysql://localhost:3306/CardSystemDemo?autoReconnect=true&useUnicode=true&characterEncoding=GB2312" maxActive="100"/>
然后在WebApp的Context.xml中加入 <ResourceLink name="jdbc/cardsystem" global="jdbc/cardsystem" type="j avax.sql.DataSource"/> 就一点问题都没有
还有,如果不配置server.xml的话直接在Context.xml中加入 <Resource name="jdbc/cardsystem" type="javax.sql.DataSource" password="123456" driverClassName="com.mysql.jdbc.Driver" maxIdle="2" maxWait="5000" username="root" url="jdbc:mysql://localhost:3306/CardSystemDemo?autoReconnect=true&useUnicode=true&characterEncoding=GB2312" maxActive="100"/> 也是可以正常的运行
但是如果Context.xml中的是 <Resource auth="Container" name="jdbc/cardsystem" global="jdbc/cardsystem" scope="Shareable" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/cardsystem"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>url</name> <value>jdbc:mysql://localhost:3306/CardSystemDemo?autoReconnect=true&useUnicode=true&characterEncoding=GB2312</value> </parameter>
<parameter> <name>driverClassName</name> <value>com.mysql.jdbc.Driver</value> </parameter> <parameter> <name>username</name> <value>root</value> </parameter>
<parameter> <name>password</name> <value>123456</value> </parameter>
<parameter> <name>maxWait</name> <value>3000</value> </parameter>
<parameter> <name>maxIdle</name> <value>100</value> </parameter>
<parameter> <name>maxActive</name> <value>10</value> </parameter> </ResourceParams> 的话,就是有问题!!!!!!!!
---------------------------------------------------------------------------------------------------------------------------------------------------
我就是这样做了,但是还是有问题,不得其解!!!现在的解决办法只有如下才行得通: 在$CATALINA_HOME/conf/Catalina/localhost下建一个与自己应用同名的xml配置文件,如工程名是kwxtest,那么就建一个kwxtest.xml,内容如下: <?xml version="1.0" encoding="UTF-8"?> <Context privileged="true" docBase="D:/apache-tomcat-5.5.17/webapps/kwxtest"> <ResourceLink global="jdbc/hibernatetest" name="jdbc/hibernatetest" type="javax.sql.DataSourcer"/> </Context> 然后,确保/conf/server.xml文件内容类似如下: <?xml version="1.0" encoding="UTF-8"?> <Server> <Listener className="org.apache.catalina.core.AprLifecycleListener"/> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/> <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/> <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/> <GlobalNamingResources> <Environment value="30" type="java.lang.Integer" name="simpleValue"/> <Resource type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" auth="Container" name="UserDatabase" pathname="conf/tomcat-users.xml" factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/> <Resource type="javax.sql.DataSource" name="jdbc/hibernatetest" driverClassName="com.mysql.jdbc.Driver" password="root" maxIdle="2" maxWait="5000" username="root" url="jdbc:mysql://localhost:3306/hibernatetest?useUnicode=true" maxActive="4"/> </GlobalNamingResources> <Service name="Catalina"> <Connector port="8080" redirectPort="8443" minSpareThreads="25" connectionTimeout="20000" maxSpareThreads="75" maxThreads="150"> </Connector> <Connector port="8009" redirectPort="8443" protocol="AJP/1.3"> </Connector> <Engine defaultHost="localhost" name="Catalina"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/> <Host appBase="webapps" name="localhost"> </Host> </Engine> </Service> </Server> 最后,确保你的应用的web.xml中,在</web-app>前加了如下配置信息: <resource-ref> <descrtiption>DB Connection</descrtiption> <res-ref-name>jdbc/hibernatetest</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth><!--Container-容器管理 Application-Web应用管理--> </resource-ref>