style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

BigDecimal incompatible with Integer

Buenas tardes, les comento otra duda esperando sus sugerencias!

Se tiene una aplicación que corría sobre Java 5, se intenta actualizar la versión a Java 6 utilizando el mismo servidor de aplicaciones que es Sun One Application Server 9.1, sin embargo, al hacer esta actualización, el WAR despliega correctamente y la aplicación funciona bien a excepción de un módulo donde arroja la siguiente excepción

java.lang.ClassCastException: java.math.BigDecimal incompatible with java.lang.Integer
        at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:2367)
        at oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:2462)
        at org.springframework.jdbc.core.StatementCreatorUtils.setValue(StatementCreatorUtils.java:351)
        at org.springframework.jdbc.core.StatementCreatorUtils.setParameterValueInternal(StatementCreatorUtils.java:217)
        at org.springframework.jdbc.core.StatementCreatorUtils.setParameterValue(StatementCreatorUtils.java:128)
        at org.springframework.jdbc.core.CallableStatementCreatorFactory$CallableStatementCreatorImpl.createCallableStatement(CallableStatementCreatorFactory.java:213)
        at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:930)
        at org.springframework.jdbc.core.JdbcTemplate.call(JdbcTemplate.java:985)
        at org.springframework.jdbc.object.StoredProcedure.execute(StoredProcedure.java:117)
        at com.bancoazteca.scl.dao.sp.SCLStoredProcedure.execute(SCLStoredProcedure.java:266)

En la línea donde aparece la clase SCLStoredProcedure, esta clase hereda de org.springframework.jdbc.object.StoredProcedure

En un archivo de configuración tenemos declarado el siguiente bean que es el que contiene el nombre de la función de Oracle a invocar,

 <bean id="getEstadoCuenta" class="com.bancoazteca.scl.dao.sp.SCLStoredProcedure">

Define 4 parámetros de entrada de tipo entero y así están declarados en este archivo de configuración, aunque en un JavaBean que contiene precisamente los parámetros de entrada uno de esos parámetros esta como BigDecimal... y de ahí que seguramente este marcando el error, sin embargo, la pregunta es, ¿Por qué en Java 5 no sucede este error?... es como si ahí hiciera el cast en automático y con la versión de Java 6 no ocurre así.. ¿Alguna incompatibilidad con el driver JDBC (ojdbc14.jar) o con Spring (spring-2.5.6.jar)?

Gracias!!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

qué mas versiones cambiaron

Aparte de usar Java 6 en vez de Java 5, qué otras versiones cambiaron? Mencionas al final el driver de JDBC... usaron distintas versiones del driver en el ambiente donde sí funciona y donde no? Y qué hay de las versiones de Spring?

Imagen de WinDoctor

Sin cambios

No ha habido cambios en las librerías, son las mismas que utilizamos de Spring y el driver jdbc tanto para Java 5 y Java 6. Dado que la última línea del error se dio en

oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatement.java:2367)

imagino el problema debe presentarse en el driver JDBC... acabo de buscar en la página de oracle, veo que hay una versión especial para Java 6 de la misma versión Oracle 10g, sin embargo ya la incluí en el proyecto pero siguió con el error... en la carpeta domain1/lib del sun one no esta esta librería que hasta donde recuerdo se debe incluir para que el servidor maneje el pool de conexiones y esto es lo que haré en un rato...

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">