以下片断是我的Server.xml中有关Oracle数据库链接配置: <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" displayName="Welcome to MyServer" docBase="F:\My Web\Web Application\jsp\servlet\web" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/servlet" privileged="false" reloadable="false" swallowOutput="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper">
<Resource auth="Container" name="jdbc/tobacco" scope="Shareable" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/tobacco">
<parameter>
<name>maxWait</name>
<value>120</value>
</parameter>
<parameter>
<name>password</name>
<value>jjy</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:oci8:@(description=(address=(host=10.48.23.182)(protocol=tcp)(port=1521))(connect_data=(sid=jjystudy)))</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>username</name>
<value>jjy</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>4</value>
</parameter>
</ResourceParams>
</Context>以下使取得数据库链接的java方法内容:
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env/"); DataSource ds = (DataSource) envContext.lookup("jdbc/tobacco");
Connection cConnection = ds.getConnection();
<Resource auth="Container" name="jdbc/tobacco" scope="Shareable" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/tobacco">
<parameter>
<name>maxWait</name>
<value>120</value>
</parameter>
<parameter>
<name>password</name>
<value>jjy</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:oci8:@(description=(address=(host=10.48.23.182)(protocol=tcp)(port=1521))(connect_data=(sid=jjystudy)))</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>username</name>
<value>jjy</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>4</value>
</parameter>
</ResourceParams>
</Context>以下使取得数据库链接的java方法内容:
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env/"); DataSource ds = (DataSource) envContext.lookup("jdbc/tobacco");
Connection cConnection = ds.getConnection();
不过系统还是报错,下面是我的java,不知道错在哪import java.sql.Connection;
import java.sql.Statement;import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;/**
* @author YZhang
*
*/
public class Pool { public static void main(String[] args) {
Statement stmt = null;
Connection conn =null;
try {
Context initContext = new InitialContext();
Context envContext =
(Context) initContext.lookup("java:/comp/env/");
DataSource ds = (DataSource) envContext.lookup("jdbc/PostGres");
conn = ds.getConnection();
} catch (Exception e) {
System.out.println(e.toString());
try {
stmt = conn.createStatement();
} catch (Exception e1) {
System.out.println("Can not find the DataBase");
} try {
String SQLCmd = "update t_user set pwd=110 where seq=1;";
stmt.executeUpdate(SQLCmd);
conn.close();
} catch (Exception e2) {
System.out.println(e2.toString()); }
}
}}系统报错:
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initialCan not find the DataBasejava.lang.NullPointerException