Skip to Main Content

Java Database Connectivity (JDBC)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

OraclePersistManager.updateBlobs() errors in using WebLogic DataSource

485832Apr 25 2006 — edited Jul 28 2006
CONFIGURATION
Ap server: WebLogic 8.1
Oracle database: 10g
Oracle JDBC Driver: ojdbc14.jar, ojdbc14_g.jar, classes12.jar

DESCRIPTION
We have developed an application- V3- on top of ADF, and currently, we wanna deployed V3 from OC4J to WebLogic, and we used weblogic data source to access oracle database. The following Exception occurred in deployment to Weblogic.

java.lang.ClassCastException: weblogic.jdbc.wrapper.Blob_oracle_sql_BLOB
at oracle.jbo.pcoll.OraclePersistManager.updateBlobs(JI[Loracle.jbo.pcoll.PCollKeyInfo;[BILoracle.jdbc.OracleCallableStatement;)V(OraclePersistManager.java:1682)
at oracle.jbo.pcoll.OraclePersistManager.insert(JJI[Loracle.jbo.pcoll.PCollKeyInfo;[B)V(OraclePersistManager.java:1832)
at oracle.jbo.pcoll.PCollNode.passivateElem(Loracle.jbo.pcoll.PCollPersistable;Loracle.jbo.pcoll.PCollNode;Loracle.jbo.pcoll.PCollection;J)Z(PCollNode.java:561)
at oracle.jbo.pcoll.PCollNode.passivate()Z(PCollNode.java:684)
at oracle.jbo.pcoll.PCollNode.passivateBranch()Z(PCollNode.java:643)
at oracle.jbo.pcoll.PCollection.passivate()J(PCollection.java:461)
at oracle.jbo.server.DBSerializer.passivateRootAM(I[BI)I(DBSerializer.java:294)
at oracle.jbo.server.DBSerializer.passivateRootAM([B)I(DBSerializer.java:267)
at oracle.jbo.server.ApplicationModuleImpl.passivateStateInternal(I[BI)I(ApplicationModuleImpl.java:5123)
at oracle.jbo.server.ApplicationModuleImpl.passivateState(I[BI)I(ApplicationModuleImpl.java:5011)
at oracle.jbo.server.ApplicationModuleImpl.doPoolMessage(Loracle.jbo.ApplicationPoolSvcMsgContext;)Loracle.jbo.ApplicationPoolSvcMsgContext;(ApplicationModuleImpl.java:7741)
at oracle.jbo.common.ampool.ApplicationPoolImpl.sendPoolMessage(Loracle.jbo.ApplicationPoolSvcMsgContext;Loracle.jbo.common.ampool.SessionCookie;Loracle.jbo.common.ampool.ApplicationPoolImpl$SessionCookieInfo;Loracle.jbo.ApplicationModule;Loracle.jbo.common.ampool.ApplicationPoolImpl$ApplicationModuleInfo;)V(ApplicationPoolImpl.java:3923)
at oracle.jbo.common.ampool.ApplicationPoolImpl.doManagedCheckin(Loracle.jbo.common.ampool.SessionCookie;Z)V(ApplicationPoolImpl.java:2161)
at oracle.jbo.common.ampool.ApplicationPoolImpl.releaseApplicationModule(Loracle.jbo.common.ampool.SessionCookie;I)V(ApplicationPoolImpl.java:1261)
at oracle.jbo.common.ampool.SessionCookieImpl.releaseApplicationModule(IJ)V(SessionCookieImpl.java:717)
at oracle.jbo.common.ampool.SessionCookieImpl.releaseApplicationModule(ZZJ)V(SessionCookieImpl.java:629)
at oracle.jbo.common.ampool.SessionCookieImpl.releaseApplicationModule(ZZ)V(SessionCookieImpl.java:611)
at oracle.cabo.data.jbo.servlet.RootAppModuleRegistryImpl$ReleaseRootAppModule.unbindValue()V(Unknown Source)
at oracle.cabo.share.util.BindableNamespaceMap.unbindAll()V(Unknown Source)
at oracle.cabo.servlet.BaseBajaContext.dispose()V(Unknown Source)
at oracle.cabo.servlet.PageBrokerHandler.handleRequest(Loracle.cabo.servlet.BajaContext;)Loracle.cabo.servlet.Page;(Unknown Source)
at oracle.cabo.servlet.UIXServlet.doGet(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(Unknown Source)
at javax.servlet.http.HttpServlet.service(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run()Ljava.lang.Object;(ServletStubImpl.java:996)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;Lweblogic.servlet.internal.FilterChainImpl;)V(ServletStubImpl.java:419)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(ServletStubImpl.java:315)
at weblogc.servlet.internal.WebAppServletContext$ServletInvocationAction.run()Ljava.lang.Object;(WebAppServletContext.java:6452)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Lweblogic.security.subject.AbstractSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Obect;(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(Lweblogic.security.acl.internal.AuthenticatedSubject;Lweblogic.security.acl.internal.AuthenticatedSubject;Ljava.security.PrivilegedAction;)Ljava.lang.Object;(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(Lweblogic.servlet.internal.ServletRequestImpl;Lweblogic.servlet.internal.ServletResponseImpl;)V(WebAppServletContext.java:3661)
at weblogic.servlet.internal.ServletRequestImpl.execute(Lweblogic.kernel.ExecuteThread;)V(ServletRequestImpl.java:2630)

After decompiling class file of OraclePersistManager, it is because the following statement, which wanted to Cast returned object to Oracle.sql.BLOB.

BLOB blob = (BLOB)oraclecallablestatement.getObject(j++);

After searching the internet, the following url says it should be casted to weblogic.jdbc.vendor.oracle.OracleThinBlob.

http://e-docs.bea.com/wls/docs81/jdbc/thirdparty.html#1043777

oracle.jbo.pcoll.OraclePersistManager is the foundation class in ADF, of which code can NOT be revised. So, what should we do to resolve such error?? Please help to get it resolved ASAP, Thx for ur time...

cheers
Adam
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Aug 25 2006
Added on Apr 25 2006
4 comments
2,473 views