无法获得Oracle连接

时间:2016-09-19 10:36:47

标签: java oracle jdbc jdbc-odbc ojdbc

无法获得Oracle连接。

为了在自定义智能服务插件中获取oracle连接,我使用以下代码: -

public static Connection openNewConnection(String url, String username, String password) throws ClassNotFoundException, SQLException {

    DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
    Connection connection = DriverManager.getConnection(url, username, password);
    return connection;
}

它作为一个独立的工作完全正常,但在JBoss中使用时,它会给"ClassCastExcepton"以下消息: -

  

ClassCastException:“无法强制转换oracle.jdbc.driver.T4CConnection   to oracle.jdbc.OracleConnection“。

我分别使用ojdbc5.jarojdbc6.jarojdbc7.jarojdbc14.jar个文件。

这个问题的任何线索?

2 个答案:

答案 0 :(得分:0)

根据此Error casting T4CConnection to OracleConnection的“显示名称缺失”答案,ojdbcN.jar会导致您必须通过正确重新引用来解决冲突。

答案 1 :(得分:0)

oracle.jdbc.driver.T4CConnection扩展了类oracle.jdbc.driver.PhysicalConnection,后者又实现了接口oracle.jdbc.OracleConnection。所以演员似乎应该成功。

它之所以不能只是一个类加载器问题,即有两个涉及相同类的jar文件或更具体:ojdbcN.jar在类路径上两次,很可能在JBoss安装中的某个地方你的.ear / .war文件。由于源和目标类和接口位于两个不同的jar文件中,因此转换失败。

修复您的课程路径。对于JBoss,ojdbc7.jar需要进入共享的JBoss目录,不得包含在.war或.ear文件中。