2016-09-19 93 views
1

无法获得Oracle连接。无法获得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不能转换 到oracle.jdbc.OracleConnection”。

我与ojdbc5.jarojdbc6.jarojdbc7.jarojdbc14.jar文件分别使用这一点。

这个问题的任何线索?

+0

这可能会帮助你! http://stackoverflow.com/questions/15483356/connection-cannot-be-cast-to-oracle-jdbc-oracleconnection –

回答

0

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

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

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