急!weblogic9配置不成功!连不上数据库

时间:2023-02-07 20:48:57
weblogic9+JDK1.5,不配置开发工具,只是配置运行环境,程序能运行起来,在Admin Server Console中配置数据源也提示成功,ORACLE数据库,数据库方面肯定是没有任何问题,但是就是连接不上数据库,既然程序能运行,但是连不上数据库,那说明是与数据库关联的方面没有做好,请问大家谁有办法?还要修改什么配置文件吗?
谢谢大家!

11 个解决方案

#1


看看你的配置文件中有关数据源的配置是否正确?
光这么说是很难得到答案的,建议把有关配置文件和数据库方面代码贴一下...

#2


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;
   }
 }

#3


谁都不回答吗?

#4


求助!

#5


jar包OK不?

#6


eblogic中访问oracle数据库的连接池可以采用三种JDBC方式进行配置

一 在weblogic console中按如下配置 建立connection pool ,并修改startWeblogic.cmd文件

1 weblogic 方式, 使用weblogic的jDriver

属性 值
URL : jdbc:weblogic:oracle

Driver Classes : weblogic.jdbc.oci.Driver

Properties (key=value): user=xixi
password=haha
server=your_tnsname


需要安装oracle的客户端

your_tnsname是你在Oracle客户端中配置的指向oracle服务器的本地服务名

startWeblogic.cmd中 Path变量加入.inoci817_8

2 oracle JDBC的thin方式


属性 值
URL : jdbc:oracle:thin:@193.0.0.5:1521:ora8

Driver Classes : oracle.jdbc.driver.OracleDriver

Properties (key=value): user=xixi
password=haha
dll=ocijdbc8
protocol=thin


不需要安装oracle的客户端 , ora8为你要连接的数据库的SID

startWeblogic.cmd中 Path变量加入.inoci817_8, CLASSPATH中加入$ORACLE_HOMEjdbclibclasses12.zip或classes111.zip,使之能找到oracle的JDBC类。


2 Oracle JDBC的OCI8方式

属性 值
URL : jdbc:oracle:oci8:@your_tns

Driver Classes : oracle.jdbc.driver.OracleDriver

Properties (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页下,查看该连接池的实例是否启动了。

#7


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文件,那么上面的代码的功能,我该用哪个文件来实现?如何实现?

#8


谁都不回答,算了,这个问题我不搞了,谁都别回答了

#9


不懂,帮顶

#10


不懂,帮顶

#11


在weblogic配置数据源来了吗?

#1


看看你的配置文件中有关数据源的配置是否正确?
光这么说是很难得到答案的,建议把有关配置文件和数据库方面代码贴一下...

#2


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;
   }
 }

#3


谁都不回答吗?

#4


求助!

#5


jar包OK不?

#6


eblogic中访问oracle数据库的连接池可以采用三种JDBC方式进行配置

一 在weblogic console中按如下配置 建立connection pool ,并修改startWeblogic.cmd文件

1 weblogic 方式, 使用weblogic的jDriver

属性 值
URL : jdbc:weblogic:oracle

Driver Classes : weblogic.jdbc.oci.Driver

Properties (key=value): user=xixi
password=haha
server=your_tnsname


需要安装oracle的客户端

your_tnsname是你在Oracle客户端中配置的指向oracle服务器的本地服务名

startWeblogic.cmd中 Path变量加入.inoci817_8

2 oracle JDBC的thin方式


属性 值
URL : jdbc:oracle:thin:@193.0.0.5:1521:ora8

Driver Classes : oracle.jdbc.driver.OracleDriver

Properties (key=value): user=xixi
password=haha
dll=ocijdbc8
protocol=thin


不需要安装oracle的客户端 , ora8为你要连接的数据库的SID

startWeblogic.cmd中 Path变量加入.inoci817_8, CLASSPATH中加入$ORACLE_HOMEjdbclibclasses12.zip或classes111.zip,使之能找到oracle的JDBC类。


2 Oracle JDBC的OCI8方式

属性 值
URL : jdbc:oracle:oci8:@your_tns

Driver Classes : oracle.jdbc.driver.OracleDriver

Properties (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页下,查看该连接池的实例是否启动了。

#7


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文件,那么上面的代码的功能,我该用哪个文件来实现?如何实现?

#8


谁都不回答,算了,这个问题我不搞了,谁都别回答了

#9


不懂,帮顶

#10


不懂,帮顶

#11


在weblogic配置数据源来了吗?