繁体   English   中英

java.lang.ClassCastException:oracle.jdbc.driver.T4CConnection无法转换为com.arjuna.ats.internal.arjuna.recovery.Connection

[英]java.lang.ClassCastException: oracle.jdbc.driver.T4CConnection cannot be cast to com.arjuna.ats.internal.arjuna.recovery.Connection

我正在尝试开发连接到Oracle数据库的Java EE应用程序。 我正在使用ojdbc6 jar。 我正在从属性文件中读取数据库信息。

package com.varun.util;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

import com.arjuna.ats.internal.arjuna.recovery.Connection;

public class DbUtil {

    private static Connection connection = null;
    public static Connection getConnection(){
        if(connection!=null)
        {
            return connection;
        }
        else
        {
            try{

                Properties prop=new Properties();
                InputStream inputStream=DbUtil.class.getClassLoader().getResourceAsStream("/db.properties");
                prop.load(inputStream);
                String driver =  prop.getProperty("driver");
                String url = prop.getProperty("url");
                String user = prop.getProperty("user");
                String password = prop.getProperty("password");
                Class.forName(driver);
                connection = (Connection) DriverManager.getConnection(url, user, password);

            }catch(ClassNotFoundException e)
            {
                 e.printStackTrace();
            }
            catch (SQLException e) {
                e.printStackTrace();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return connection;
        }
    }

}

我正在说一个例外:

java.lang.ClassCastException:oracle.jdbc.driver.T4CConnection无法转换为com.arjuna.ats.internal.arjuna.recovery.Connection

我没有找到根本原因。 我也更改了jar文件,但是仍然抛出相同的错误。

尝试从更改进口

import com.arjuna.ats.internal.arjuna.recovery.Connection;

import java.sql.Connection;

修复Connection的导入。 它不能是com.arjuna.ats.internal.arjuna.recovery.Connection

DriverManager.getConnection(url, user, password)返回“ oracle.jdbc.driver.T4CConnection”的实例,而您尝试将其强制转换为“ com.arjuna.ats.internal.arjuna.recovery.Connection”。 这是导致您出错的原因。

我认为问题出在您的导入上,请检查您的代码中是否有此导入:

import com.arjuna.ats.internal.arjuna.recovery.Connection;

它应该是 :

import java.sql.Connection;

看一下本教程

您的导入有问题。

使用java.sql.Connection。

问题得到解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM