Problema ao executar procedure oracle

Pessoal, tenho o código abaixo na minha aplicação:

[code]…
OracleCallableStatement ocs = (OracleCallableStatement) con.prepareCall("{call owner.desbloqueia_cliente(?,?,?)}");
ocs.setString(1, “Silva”);
ocs.setInt(2, 1);
ocs.registerOutParameter(3, Types.INTEGER);
ocs.execute();

return ocs.getInt(3);
…[/code]

Na minha webapp, que está no jBoss, estou utilizando um datasource para conectar ao banco, e nele que ocorre o erro. Quando executo a chamada da página recebo a excessão: java.lang.ClassCastException - cannot convert from CallableStatement to OracleCallableStatement

Mas quando faço o teste no eclipse, eu conectou usando o Class.forName:

Class.forName("oracle.jdbc.driver.OracleDriver"); con = DriverManager.getConnection "jdbc:oracle:thin:@localhost:1531:prd","user","pass"); return conCLI;
E ai Funciona!!

Estou utilizando o classes12.jar. Alguem poderia me dar uma luz? Não sei pq não funciona, é o mesmo driver, classe… só a forma de conexão que é diferente…

Obrigado

Um DataSource do JBoss não lhe retorna uma OracleConnection e sim um objeto que encapsula a conexão do Oracle. Esse objeto varia um pouco conforme a versão do JBoss.

Se não me engano, existe um método nesse objeto do JBoss que retorna a conexão Oracle (“underlying connection”). O nome desse método varia conforme a versão do JBoss que você está usando.

Bom thingol, resolvi utilizar o CallableStatement da classe java.sql e resolveu meu problema.

Valeu pelo dica!!

Abraço!