无法获得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.jar
,ojdbc6.jar
,ojdbc7.jar
和ojdbc14.jar
个文件。
这个问题的任何线索?
答案 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文件中。