Trabajando en un proyecto de arquitectura Servidor de aplicaciones TOMCAT y base de datos ORACLE, me encontre con la siguiente excepción:
ClassCastException: oracle.sql.BLOB
Originado por el siguiente casteo:
if( res.next() ) {
Blob imagen = res.getBlob(1);
OutputStream blobOutputStream =
((oracle.sql.BLOB)imagen).getBinaryOutputStream();
La solución:
Esto ocurre cuando hay una rayadera de ficheros ojdbc14.jar. Ya que el pool de conexiones de la aplicación usa este, pero no necesariamente el que se llama en el código arriba puesto. Para quitarnos de envima el problema deben asegurarse que haya un solo ojdbc14.jar que debería estar en la carpeta lib del Tomcat. Eliminen de la carpeta web-inf/lib cualquier otro ojdbc14.jar (y si trabajan usando netbeans tanto del web-inf de web como del web-inf de build/web). Si trabajan con eclipse, tengan cuidado ya que esta IDE lo coloca automaticamente en web-inf/lib.