以下片断是我的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();

解决方案 »

  1.   

    多谢大哥指点,我设置了server.xml写了java
    不过系统还是报错,下面是我的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
      

  2.   

    抱歉,刚学java,帮不了你学习中