gpt4 book ai didi

java - 无法获得 Oracle 连接

转载 作者:太空宇宙 更新时间:2023-11-04 12:14:10 24 4
gpt4 key购买 nike

无法获得 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 cannot be cast to oracle.jdbc.OracleConnection".

我已分别将其与 ojdbc5.jarojdbc6.jarojdbc7.jarojdbc14.jar 文件一起使用。

这个问题有什么线索吗?

最佳答案

oracle.jdbc.driver.T4CConnection 类扩展了oracle.jdbc.driver.PhysicalConnection 类,后者又实现了oracle.jdbc.OracleConnection 接口(interface)。所以看来 Actor 阵容应该会成功。

它的原因只能是类加载器问题,即有两个包含相同类的 jar 文件,或更具体地说:ojdbcN.jar 在类路径上两次,很可能在 JBoss 安装中的 .ear/.war 文件中的某个位置。并且转换失败,因为源类和目标类以及接口(interface)位于两个不同的 jar 文件中。

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

关于java - 无法获得 Oracle 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39571100/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com