在Tomcat4.1.x都实验成功。
在Tomcat4.0.x只有SQL Server实验成功。<Resource auth="Container" name="jdbc/DBDeveloper" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/DBDeveloper">
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
<!-- SQL Server 2000 -->
<parameter><name>username</name><value>sa</value></parameter>
<parameter><name>password</name><value>enter</value></parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value></parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://infor:1433;DatabaseName=infordb</value>
</parameter>
<!-- Oracle8i -->
<!--
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@192.168.0.170:1521:infordb</value>
</parameter>
<parameter>
<name>username</name>
<value>system</value>
</parameter>
<parameter>
<name>password</name>
<value>manager</value>
</parameter>
-->
<!-- DB2 -->
<!--
<parameter>
<name>driverClassName</name>
<value>COM.ibm.db2.jdbc.net.DB2Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:db2://infor/infordb</value>
</parameter>
<parameter>
<name>username</name>
<value>db2admin</value>
</parameter>
<parameter>
<name>password</name>
<value>db2admin</value>
</parameter>
-->
</ResourceParams>
在Tomcat4.0.x只有SQL Server实验成功。<Resource auth="Container" name="jdbc/DBDeveloper" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/DBDeveloper">
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
<!-- SQL Server 2000 -->
<parameter><name>username</name><value>sa</value></parameter>
<parameter><name>password</name><value>enter</value></parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value></parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://infor:1433;DatabaseName=infordb</value>
</parameter>
<!-- Oracle8i -->
<!--
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@192.168.0.170:1521:infordb</value>
</parameter>
<parameter>
<name>username</name>
<value>system</value>
</parameter>
<parameter>
<name>password</name>
<value>manager</value>
</parameter>
-->
<!-- DB2 -->
<!--
<parameter>
<name>driverClassName</name>
<value>COM.ibm.db2.jdbc.net.DB2Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:db2://infor/infordb</value>
</parameter>
<parameter>
<name>username</name>
<value>db2admin</value>
</parameter>
<parameter>
<name>password</name>
<value>db2admin</value>
</parameter>
-->
</ResourceParams>
tomcat 下编辑server.xml <Context path="/site" docBase="site" debug="0" reloadable="true" >
<Resource name="jdbc/SQLServerEMSDB" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/SQLServerEMSDB">
<parameter>
<name>user</name>
<value>sa</value>
</parameter> <parameter>
<name>sa</name>
<value>sa</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter> <parameter>
<name>driverName</name>
<value>jdbc:sqlserver://sqlserver:1433;DatabaseName=test;SelectMethod=cursor</value>
</parameter> </ResourceParams>
</Context>
然后在程序中lookup即可
try {
javax.naming.Context ctx = new javax.naming.InitialContext();
javax.naming.Context cText = (Context)ctx.lookup("java:/cmp/env");
ds = (DataSource)cText.lookup("jdbc/engtrade"); conn = ds.getConnection();
System.out.println("connection database success!");
}catch(Exception e) {
e.printStackTrace();
}
怎么是jdbc未绑定?
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
at org.apache.naming.NamingContext.lookup(NamingContext.java:811)
at org.apache.naming.NamingContext.lookup(NamingContext.java:194)
at com.foodchina.jdbc.TestDBConnection.init(TestDBConnection.java:34)
at com.foodchina.jdbc.TestDBConnection.<init>(TestDBConnection.java:27)
at com.foodchina.jdbc.TestDAO.<init>(TestDAO.java:27)
at com.foodchina.jdbc.TestManager.searchResultByAuctionId(TestManager.ja
va:19)
try {
javax.naming.Context ctx = new javax.naming.InitialContext();
javax.naming.Context cText = (Context)ctx.lookup("java:/comp/env");
ds = (DataSource)cText.lookup("jdbc/engtrade"); conn = ds.getConnection();
System.out.println("connection database success!");
}catch(Exception e) {
System.out.println("Connection Exception : "+e);
e.printStackTrace();
}
实际上执行到conn = ds.getConnection();这一句出错了,应该是
javax.naming.Context cText = (Context)ctx.lookup("java:/comp/env");
ds = (DataSource)cText.lookup("jdbc/engtrade");
出错,不知道是我在server.xml里配置的不对还是代码有问题,或者是不是要在web.xml里配置<resource-ref>节点的一些值?另外,不知道哪位大侠能告诉一下,哪里有这些XML文件的DTD文件的说明?到对应的网站上可以当到吗?