4 Replies Latest reply on Mar 7, 2003 7:30 PM by scoy

    blob problem

    devin

      hi, could someone advise?
      i've got jboss3.06+tomcat4.1.18, oracle9i (rel 2), jdk1.4.1_01, basically all the latest stuff.

      i copied ojdbc14.jar into default/lib dir, then i created an entity bean with a field of Object type

      insertion is fine, but retrieval throws the following error:

      20:18:00,425 ERROR [LogInterceptor] EJBException, causedBy:
      java.sql.SQLException: Unable to load to deserialize result: java.io.StreamCorru
      ptedException: invalid stream header
      at org.jboss.ejb.plugins.cmp.jdbc.JDBCUtil.convertToObject(JDBCUtil.java
      :753)
      at org.jboss.ejb.plugins.cmp.jdbc.JDBCUtil.getResult(JDBCUtil.java:360)
      at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCAbstractCMPFieldBridge.load
      ArgumentResults(JDBCAbstractCMPFieldBridge.java:359)
      at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCAbstractCMPFieldBridge.load
      InstanceResults(JDBCAbstractCMPFieldBridge.java:312)
      at org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.execute(JDBCLoad
      EntityCommand.java:147)
      at org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.execute(JDBCLoad
      EntityCommand.java:62)
      at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.loadEntity(JDBCStoreM
      anager.java:572)
      at org.jboss.ejb.plugins.CMPPersistenceManager.loadEntity(CMPPersistence
      Manager.java:410)
      at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.load
      Entity(CachedConnectionInterceptor.java:353)
      at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invoke(EntityS
      ynchronizationInterceptor.java:252)
      at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invo
      ke(CachedConnectionInterceptor.java:186)
      at org.jboss.ejb.plugins.EntityReentranceInterceptor.invoke(EntityReentr
      anceInterceptor.java:90)
      at org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(EntityInstance
      Interceptor.java:168)
      at org.jboss.ejb.plugins.EntityLockInterceptor.invoke(EntityLockIntercep
      tor.java:107)
      at org.jboss.ejb.plugins.EntityCreationInterceptor.invoke(EntityCreation
      Interceptor.java:69)
      at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInte
      rceptor.java:107)
      at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxIntercep
      torCMT.java:228)
      at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:9
      2)
      at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.
      java:130)
      at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:204)
      at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:493)
      at org.jboss.ejb.Container.invoke(Container.java:712)
      at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:1058)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
      at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:98)
      at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.jav
      a:102)
      at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.
      java:77)
      at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:8
      0)
      at org.jboss.proxy.ejb.EntityInterceptor.invoke(EntityInterceptor.java:1
      16)
      at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:76)
      at $Proxy77.getCreatorType(Unknown Source)
      at com.iad.servlet.DispatcherServlet.doStoreFilesFromDatabaseIntoSession
      (DispatcherServlet.java:3770)
      at com.iad.servlet.DispatcherServlet.doNavigateViewAuditIssue(Dispatcher
      Servlet.java:2197)
      at com.iad.servlet.DispatcherServlet.doPost(DispatcherServlet.java:174)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
      icationFilterChain.java:247)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:193)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
      alve.java:260)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
      t.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
      a:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
      alve.java:191)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
      t.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
      torBase.java:493)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
      t.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve
      .java:246)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
      t.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
      a:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

      at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:
      2415)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
      ava:180)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
      t.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatche
      rValve.java:170)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
      t.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
      ava:172)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
      t.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
      509)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
      t.invokeNext(StandardPipeline.java:641)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
      a:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
      ve.java:174)
      at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
      t.invokeNext(StandardPipeline.java:643)
      at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
      a:480)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)

      at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcesso
      r.java:1040)
      at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.ja
      va:1151)
      at java.lang.Thread.run(Thread.java:536)
      20:18:00,435 INFO [STDOUT] EJBException:; nested exception is:
      javax.ejb.EJBException: Internal error getting results for field member
      storageObject; CausedByException is:
      Unable to load to deserialize result: java.io.StreamCorruptedException:
      invalid stream header


      i tried both thin and oci ways of connecting to the db, but ain't working...

      could someone confirm that this is a jboss bug?

        • 1. Re: blob problem
          scoy

          What type mappings are you using for the BLOB column in your jbosscmp-jdbc.xml?

          Steve

          • 2. Re: blob problem
            devin

            hi Scoy.
            attached is the relevant fragment...didn't change this part from the default standardjbosscmp-jdbc file...only changed the datasource to oracle9i.


            <java-type>java.lang.Object</java-type>
            <jdbc-type>BLOB</jdbc-type>
            <sql-type>BLOB</sql-type>
            <!--
            | Change this from BLOB to RAW(n) if you know your
            | serialized object will be <= n bytes and n <= 2000
            -->

            • 3. Re: blob problem
              devin

              hi Scoy,
              here's the fragment...didn't change this part of the standardjbosscmp-jdbc file, save to switch the datasource to Oracle9i.


              <java-type>java.lang.Object</java-type>
              <jdbc-type>BLOB</jdbc-type>
              <sql-type>BLOB</sql-type>
              <!--
              | Change this from BLOB to RAW(n) if you know your
              | serialized object will be <= n bytes and n <= 2000
              -->


              • 4. Re: blob problem
                scoy