1,在Admin Server Console中测试数据源成功,
2,我的程序中的index.jsp页能成功运行,
3,如果现在换成tomcat6.0,那么程序就会运转正常,所以,我想,我开发的应用程序没有问题,ORACLE数据库也没有问题,weblogic也应该没有问题,有问题的是weblogic没有和我的应用程序连接起来,能查到的资料都查到了,还是不行想问问web.xml,setDomainEnv.cmd文件应该怎么改?我的数据库连接代码像下面这样写对吗?难道换了一个服务器数据库连接代码还要改吗?原来运行可是正常的  package com.dao; import com.util.*;
 import java.sql.*;
 import javax.naming.*;
 import javax.sql.*; /**
 数据库连接
 */
 public class DAO
 {
     public DataSource datasource;
     public Connection conn;
     public int count;
     //private static Object object = new Object();
     //private static DAO dbc = null;     public DAO ()
     {
         datasource = null;
         conn = null;
     }   /*//得到数据库连接实例
     public static DAO getInstance() {
         if (dbc == null) {
             synchronized(object){
                 if(dbc == null)
                     dbc = new DAO();
             }
         }
         return dbc;
     }*/     public DataSource getDataSource ()
     {
         try
         {
             Context ctx = new InitialContext();
             Object value = ctx.lookup(Constant.SYSTEM_DATASOURCE);
             datasource = (DataSource) value;
         }
         catch (NamingException ne)
         {
             Debug.println("Couldn't find user datasource222222222222222: \n".concat(String.
             valueOf(String.valueOf(ne))));
         }
         return datasource;
     }     public Connection getConnection ()
         throws SQLException
     {
         datasource = getDataSource();
         if (datasource != null)
         {
             conn = datasource.getConnection();
         }
         else
         {
             throw new SQLException("数据源为空111111111");
         }
         return conn;
     }     public void closeConnection (Connection conn)
     {
         try
         {
             if (conn != null && !conn.isClosed())
             {
                 conn.close();
             }
         }
         catch (SQLException se)
         {
             System.err.println(
                 "DAO closeConnection SQLException="
                 + se.getMessage());
         }
     }     public void closeStatement (Statement stmt)
     {
         try
         {
             if (stmt != null)
             {
                 stmt.close();
             }
         }
         catch (SQLException se)
         {
             System.err.println(
                 "DAO closeStatement SQLException="
                 + se.getMessage());
         }
     }     public void closePreparedStatement (PreparedStatement pStmt)
     {
         try
         {
             if (pStmt != null)
             {
                 pStmt.close();
             }
         }
         catch (SQLException se)
         {
             System.err.println("DAO closePrepareStatement "
                                + "SQLException=" + se.getMessage());
         }
     }     public void closeResultSet (ResultSet rs)
     {
         try
         {
             if (rs != null)
             {
                 rs.close();
             }
         }
         catch (SQLException se)
         {
             System.err.println(
                 "DAO closeResultSet SQLException="
                 + se.getMessage());
         }
     }/**
* 说明:取得当前查询的总记录数
*/
  public int getRows ()
  {
    return this.count;
  }  public void rsHandler (ResultSet rs, int offset, int limit)
  {
   try
   {
    count = 0;
    rs.absolute(-1);
    count = rs.getRow();
    if (offset <= 0)
    {
      rs.beforeFirst ();
    }
    else
    {
      rs.absolute (offset);
    }
   }
   catch (Exception e)
   {
    e.printStackTrace ();
   }
  }//删除、修改通用操作
  public void operateRecord(String sql)
    {
        try
        {
            Connection conn = getConnection();
            Statement stmt = conn.createStatement();
            stmt.executeUpdate(sql);
            closeStatement(stmt);
            closeConnection(conn);
        }
        catch (SQLException se)
        {
            System.out.println("SQLException=" + se.getMessage());
        }
    }    public int getMaxId(String sql){
     int maxid = 0;
     try
      {
          Connection conn = getConnection();
          Statement stmt = conn.createStatement();
          stmt = conn.createStatement();
          ResultSet rs = stmt.executeQuery(sql);
          if (rs.next())
          {
              maxid = rs.getInt(1)+1;
          }else{
            maxid = 1;
          }          stmt.close();
          rs.close();
          conn.close();
      }
      catch (SQLException se)
      {
          System.out.println("DatabaseOperation getIncreaseId="+ se.getMessage());
      }
     return maxid;
   }
 }

解决方案 »

  1.   

    eblogic中访问oracle数据库的连接池可以采用三种JDBC方式进行配置一 在weblogic console中按如下配置 建立connection pool ,并修改startWeblogic.cmd文件1 weblogic 方式, 使用weblogic的jDriver属性 值
    URL : jdbc:weblogic:oracleDriver Classes : weblogic.jdbc.oci.DriverProperties (key=value): user=xixi
    password=haha
    server=your_tnsname
    需要安装oracle的客户端your_tnsname是你在Oracle客户端中配置的指向oracle服务器的本地服务名startWeblogic.cmd中 Path变量加入.inoci817_82 oracle JDBC的thin方式
    属性 值
    URL : jdbc:oracle:thin:@193.0.0.5:1521:ora8Driver Classes : oracle.jdbc.driver.OracleDriverProperties (key=value): user=xixi
    password=haha
    dll=ocijdbc8
    protocol=thin
    不需要安装oracle的客户端 , ora8为你要连接的数据库的SIDstartWeblogic.cmd中 Path变量加入.inoci817_8, CLASSPATH中加入$ORACLE_HOMEjdbclibclasses12.zip或classes111.zip,使之能找到oracle的JDBC类。
    2 Oracle JDBC的OCI8方式属性 值
    URL : jdbc:oracle:oci8:@your_tnsDriver Classes : oracle.jdbc.driver.OracleDriverProperties (key=value): user=xixi
    password=haha
    dll=ocijdbc8
    protocol=oci8
    your_tns为你在Oracle中配置的指向oracle服务器的本地服务名(即 TNS NAME)
    {取消path中的./bin/oci817_8/ (LINUX下$WL_HOME/lib/linux/ora8.1.6_oci8) LD_LIBRARY_PATH 加入 $ORACLE_HOME/lib }startWeblogic.cmd中 Path变量加入$ORACLE_HOME/bin, CLASSPATH中加入指向$ORACLE_HOMEjdbclibclasses12.zip或classes111.zip需要安装oracle的客户端 ,注意 oracle客户端配置好 oracle的环境变量 NLS_LANG和ORACLE_HOME
    二 在console中注意 在targets页下选中你欲使用的server,即指定在哪些server中可以使用这个connection pool。三 建立一个数据源,使用这个连接池检查连接池是否配置成功重新启动后,在该连接池的monitor页下,查看该连接池的实例是否启动了。
      

  2.   

    JAR包肯定是OK的,这一点经过了tomcat下的验证大家说的都不能解决我的问题,我的问题关键在于:JSP程序启动,这没问题,但是如何让程序连接上数据库?程序中的连接字符串啊,连接的类啊,写的也没有问题,这一点也经过了在tomcat下的验证,也就是说:我的JSP程序在tomcat下配置后,运行起来一点问题也没有,但是换到了weblogic下,我不知道哪个文件用来连接数据库?也就是说哪个文件类似于tomcat中的context.xml文件?context.xml文件中的功能,到了weblogic下,该用哪个文件来实现?我在tomcat下的context.xml文件,关键内容如下:
    <Resource name="jdbc/scott" auth="Container"  type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"       url="jdbc:oracle:thin:@10.70.8.79:1522:orcl"   username="st" password="st" maxActive="20" maxIdle="10"  maxWait="-1"/>上面的那段话,是用来在tomcat下连接数据库服务器的,那么到了weblogic下,没有了context.xml文件,那么上面的代码的功能,我该用哪个文件来实现?如何实现?
      

  3.   

    在weblogic配置数据源来了吗?