不行啊!我将例子程序修改为下面的 <%DataSource ds = null; try { Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); ds = (DataSource) envCtx.lookup("jdbc/myoracle"); if (ds != null) { out.println("Connection is OK!"); Connection cn = ds.getConnection(); if (cn != null) { out.println("cn is Ok!"); Statement stmt = cn.createStatement(); ResultSet rst = stmt.executeQuery("select * from sms_tim_send"); out.println("<p>rst is Ok!" + rst.next()); while (rst.next()) { out.println("<P>BOOK_CODE:" + rst.getString("MOBILE_NO")); } cn.close(); } else { out.println("rst Fail!"); } } else out.println("Fail!"); } catch (Exception ne) { out.println(ne); } %>-------------------------------------- 连接串也按照你们说得jdbc:oracle:thin:@10.10.1.2:1521:orcl 还是报错: Connection is OK! org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'什么原因啊?
再把oracle驱动classes12.jar拷贝到你程序的lib下,还不好我就不知道怎么回事了!
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'(没取到url!!) ----------------------------------------------- <Resource name="jdbc/myoracle" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:[email protected]:1521:orcl" username="sms" password="sms" maxActive="20" maxIdle="10" maxWait="-1"/> ------------------------------------ 能这么配置么?换成如下试试
<Resource name="jdbc/myoracle" auth="Container" type="javax.sql.DataSource" /> <ResourceParams name="jdbc/myoracle"> <parameter> <name>maxActive</name> <!-- Maximum number of DB connections in pool.Set to 0 for no limit. --> <value>100</value> </parameter> <parameter> <name>maxIdle</name> <!-- Maximum number of idle DB connections to retain in pool.Set to 0 for no limit. --> <value>30</value> </parameter> <parameter> <name>maxWait</name> <!-- Maximum time to wait for a DB connection to become available in ms.An exception is thrown if this timeout is exceeded.Set to -1 to wait indefinitely. --> <value>10000</value> </parameter> <parameter> <name>removeAbandoned</name> <!-- Abandoned DB connections are removed and recycled --> <value>true</value> </parameter> <parameter> <name>removeAbandonedTimeout</name> <!-- Use the removeAbandonedTimeout parameter to set the number of seconds a DB connection has been idle before it is considered abandoned. --> <value>60</value> </parameter> <parameter> <name>logAbandoned</name> <!-- Log a stack trace of the code which abandoned --> <value>false</value> </parameter> <parameter> <name>factory</name> <!--DBCP Basic Datasource Factory --> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>username</name> <!-- Database User Name --> <value>sms</value> </parameter> <parameter> <name>password</name> <!-- User Password --> <value>sms</value> </parameter> <parameter> <name>driverClassName</name> <!-- Database Driver Class Name --> <value>oracle.jdbc.driver.OracleDriver</value> </parameter> <parameter> <name>url</name> <!-- Database Address --> <value>jdbc:oracle:thin:[email protected]:1521:orcl</value> </parameter> </ResourceParams>
<%DataSource ds = null;
try
{
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource) envCtx.lookup("jdbc/myoracle");
if (ds != null)
{
out.println("Connection is OK!");
Connection cn = ds.getConnection();
if (cn != null)
{
out.println("cn is Ok!");
Statement stmt = cn.createStatement();
ResultSet rst = stmt.executeQuery("select * from sms_tim_send");
out.println("<p>rst is Ok!" + rst.next());
while (rst.next())
{
out.println("<P>BOOK_CODE:" + rst.getString("MOBILE_NO"));
}
cn.close();
}
else
{
out.println("rst Fail!");
}
}
else
out.println("Fail!");
}
catch (Exception ne)
{
out.println(ne);
}
%>--------------------------------------
连接串也按照你们说得jdbc:oracle:thin:@10.10.1.2:1521:orcl
还是报错:
Connection is OK! org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'什么原因啊?
-----------------------------------------------
<Resource name="jdbc/myoracle" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:[email protected]:1521:orcl"
username="sms" password="sms" maxActive="20" maxIdle="10"
maxWait="-1"/>
------------------------------------
能这么配置么?换成如下试试
<ResourceParams name="jdbc/myoracle">
<parameter>
<name>maxActive</name>
<!-- Maximum number of DB connections in pool.Set to 0 for no limit. -->
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<!-- Maximum number of idle DB connections to retain in pool.Set to 0 for no limit. -->
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<!-- Maximum time to wait for a DB connection to become available in ms.An exception is thrown if this timeout is exceeded.Set to -1 to wait indefinitely. -->
<value>10000</value>
</parameter>
<parameter>
<name>removeAbandoned</name>
<!-- Abandoned DB connections are removed and recycled -->
<value>true</value>
</parameter>
<parameter>
<name>removeAbandonedTimeout</name>
<!-- Use the removeAbandonedTimeout parameter to set the number of seconds a DB connection has been idle before it is considered abandoned. -->
<value>60</value>
</parameter>
<parameter>
<name>logAbandoned</name>
<!-- Log a stack trace of the code which abandoned -->
<value>false</value>
</parameter>
<parameter>
<name>factory</name>
<!--DBCP Basic Datasource Factory -->
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>username</name>
<!-- Database User Name -->
<value>sms</value>
</parameter>
<parameter>
<name>password</name>
<!-- User Password -->
<value>sms</value>
</parameter>
<parameter>
<name>driverClassName</name>
<!-- Database Driver Class Name -->
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<!-- Database Address -->
<value>jdbc:oracle:thin:[email protected]:1521:orcl</value>
</parameter>
</ResourceParams>
按照你的做了.还是不行啊!
哪位大仙救救我啊!
配置数据库连接池Database Connection Pool (DBCP)(Tomcat版本号:5.5.17 Oracle10g)
+-----------------------------------------------------------------------------+
(1)修改\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
name="simpleValue"
type="java.lang.Integer"
value="30"/>
<Resource
auth="Container"
description="User database that can be updated and saved"
name="UserDatabase"
type="org.apache.catalina.UserDatabase"
pathname="conf/tomcat-users.xml"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/>
</GlobalNamingResources>
<Service
name="Catalina">
<Connector
port="8080"
redirectPort="8443"
minSpareThreads="25"
connectionTimeout="20000"
maxSpareThreads="75"
maxThreads="150">
</Connector>
<Connector
port="8009"
redirectPort="8443"
connectionTimeout="-1"
protocol="AJP/1.3">
</Connector>
<Engine
defaultHost="localhost"
name="Catalina">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
<Host
appBase="webapps"
name="localhost">
<Context
path="/chat_reference">
<WatchedResource>d:\Tomcat 5.5\conf\context.xml</WatchedResource>
</Context>
<Context path="/quickstart" docBase="quickstart"
debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/myoracle" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@10.10.1.2:1521:orcl"
username="sms" password="sms" maxActive="20" maxIdle="10"
maxWait="-1"/>
</Context>
<!--
Oracle10g开始使用最新版JDBC驱动程序中的oracle.jdbc.OracleDriver而不是oracle.jdbc.driver.OracleDriver
连接字符串jdbc:oracle:thin:@10.10.1.2:1521:orcl的thin后面有:号.
-->
</Host>
</Engine>
</Service>
</Server>
-------------------------------------------------------------------------------
(2)修改\webapps\quickstart\WEB-INF\web.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><!-- <resource-env-ref>
<description>Object factory for MyBean instances.</description>
<resource-env-ref-name>bean/MyBeanFactory</resource-env-ref-name>
<resource-env-ref-type>com.mycompany.MyBean</resource-env-ref-type>
</resource-env-ref>
-->
<resource-ref>
<description>Oracle Datasource example</description>
<res-ref-name>jdbc/myoracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref></web-app>
-------------------------------------------------------------------------------
(3)写jsp测试例子放在\webapps\quickstart目录下
<%DataSource ds = null;
try
{
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource) envCtx.lookup("jdbc/myoracle");
Connection cn=null;
if (ds != null)
{
out.println("DataSource is OK!"); try
{
cn = ds.getConnection();
}
catch (Exception e)
{ e.printStackTrace();
} if (cn != null)
{
out.println("Connection is Ok!");
Statement stmt = cn.createStatement();
ResultSet rst = stmt.executeQuery("select * from sms_tim_send");
out.println("<p>rst is Ok!" + rst.next());
while (rst.next())
{
out.println("<P>MOBILE_NO:" + rst.getString("MOBILE_NO"));
}
cn.close();
}
else
{
out.println("Connection Fail!");
}
}
else
out.println("DataSource Fail!");
}
catch (Exception ne)
{ out.println(ne.getMessage());
ne.printStackTrace();
} %>
-------------------------------------------------------------------------------
(4)访问http://localhost:8080/quickstart/index.jsp