打开OracleConnection

时间:2011-11-22 11:18:50

标签: oracle connection jboss7.x

我有这段代码用于使用JBoss 5.1,Oracle 11,ojdbc6.jar正常运行。我根据需要获得了OracleConnection。

InitialContext ic = new InitialContext();
DataSource  ds = ( DataSource ) ic.lookup( "java:/" + dataSource );
Connection con = ds.getConnection();       
OracleConnection conn = con.unwrap( OracleConnection.class );

不再使用JBoss 7,Oracle 11,ojdbc6.jar。 它像这样说:

  

连接   不是Oracle Connection的包装类

如果您有任何想法,请帮助。

2 个答案:

答案 0 :(得分:4)

我使用“oracle.jdbc.pool.OracleConnectionPoolDataSource”作为glassfish中的datasouce类。

使用该类或查找jboss类。

编辑并尝试:

public OracleConnection getOracleConnection(Connection connection) throws SQLException {
    OracleConnection oconn = null;
    try {
        if (connection.isWrapperFor(oracle.jdbc.OracleConnection.class)) {
            oconn = (OracleConnection) connection.unwrap(oracle.jdbc.OracleConnection.class)._getPC();
        }
    } catch (SQLException e) {
        throw e;
    }
    return oconn;
}

答案 1 :(得分:0)

尝试将其作为WrappedConnection访问,就像这样

Connection con = ds.getConnection();
WrappedConnection wc = (WrappedConnection) con;
OracleConnection conn =  (OracleConnection) wc.getUnderlyingConnection();